2012-06-01 104 views
4

我正在尝试写出正在完成三个大迭代的内容并每次打开和关闭outfile的输出。计数器在迭代之后得到重置和类似的事情,我是一个巨大的newb,并且很难用我写的劣质代码来解决这个问题。所以即使速度较慢,我想改变它输出的方式。Python:写入下一个空行

目前对于输出它只是重写第一行,所以我只有程序最后一次运行的输出。 (头,输出是在代码中给出上述迭代值的变量)

with open(fileName + '.autocorrelate', "w") as outfile: 
    outfile.writelines('{0}  {1}{2}'.format(tau, output, '\n')) 

,如果有任何快速的方法来获得蟒蛇检查第一个空行,当它打开一个文件,写我想知道有新线?

+4

小文体建议:你可以写'outfile.writelines(“{0} {1} \ n'.format(tau,output))',不需要单独提供'\ n'。 – Levon

回答

9

用“a”而不是“w”打开将写在文件末尾。这是不覆盖的方式。

+0

该死,9秒太晚;) –

+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