2012-06-01 76 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