Python:写入下一个空行

4
我正在尝试编写某个操作的输出结果,该操作需要进行三次大迭代,每次我都会打开和关闭输出文件。在迭代后,计数器会被重置,因此我很难用我粗糙的代码解决这个问题。所以即使速度变慢,我也想改变输出方式。
目前,输出只是覆盖第一行,因此我只有程序最后一次运行的输出结果。(tau, output是在上面的代码中赋值给变量的)
with open(fileName + '.autocorrelate', "w") as outfile:
    outfile.writelines('{0}     {1}{2}'.format(tau, output, '\n'))

我在想,是否有快速的方法让Python在打开文件时检查第一个空行并将新行写入其中?

4
小小的文体建议:您可以编写 outfile.writelines('{0} {1}\n'.format(tau, output)),无需单独提供 \n - Levon
3个回答

9

使用"a"而不是"w"打开文件将写入文件末尾。这样就可以避免覆盖原有内容。


2
这并不一定会找到第一个空行并在那里写入(这对于简单的ASCII文件来说可能相当困难)。但是,它确实会在最后一行之后写入,这才是问题的真正答案... - mgilson

1
如果您以追加模式打开文件:"a"而不是"w",则可以在文件末尾写入新行。

0

你可以这样做,为文件中的每一行空行保留一个引用(行号)

# Get file contents
fd = open(file)
contents = fd.readlines()
fd.close()

empty_line = []
i = 0

# find empty line
for line in contents:
    if line == "":
       empty_line.append(i)
    i+=1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接