当用python打开和编写文本时,为什么我的内容消失了


inputFile = open('/content/gdrive/My Drive/dihedral/6.txt', "r") 
exportFile = open('/content/gdrive/My Drive/dihedral/6.txt', "w")
for line in inputFile:
s = list(line, sep = 't')
if s[1] < 0:
s[1] += 360
s[0] *= 0.01
t = 't'
new_line = t.join(s)
exportFile.write(new_line) 
inputFile.close()
exportFile.close()

它是文件,但现在它消失了。当然,我已经做了备份文件。

您的输入和输出文件是相同的。

inputFile = open('/content/gdrive/My Drive/dihedral/6.txt', "r") 
exportFile = open('/content/gdrive/My Drive/dihedral/6.txt', "w")

当你还在读同一个文件时,你不能写入输出

更简单的解决方案:将输出写入另一个文件。如果成功,则删除输入文件,并将输出文件重命名为输入文件的名称。

您正在从相同的文件中读取并写入它。您可以做的是读取所有行,对其进行操作,并在读取完成后将其写回同一个文件,如下面的代码:

inputFile = '/content/gdrive/My Drive/dihedral/6.txt'
exportFile = '/content/gdrive/My Drive/dihedral/6.txt'
new_lines = []
with open(inputFile, 'r') as fp:
for line in fp:
s = list(line, sep = 't')
if s[1] < 0:
s[1] += 360
s[0] *= 0.01
new_lines.append('t'.join(s))
with open(expotFile, 'w') as fq:
fq.write('n'.join(new_lines))

最新更新