2016-11-09 45 views
0

我想通過說我是相當新的python作爲序言。 我寫了一段代碼來計算使用python 2.7.12的csv文件的平均值和標準偏差,然後我用with open命令將這些數值寫入summary.out,但是當我關閉文件並運行python命令在我的下一個csv文件上,它只是覆蓋我存儲的第一個數據位,並且只在文件中顯示新的輸出。我希望能夠使用此命令將所有數據片段存儲到文件中,而不是覆蓋舊的輸出。更新我使用打開的文件更新

我不會粘貼完整代碼,只需寫部分自認爲是不合作的唯一消減:

with open('summary.out', 'w') as f: 
     f.write(filename + "=") 
     f.write(str(d)) 
     f.close 

f.write filename是我平均文件,STR(d)返回平均值和標準偏差,但代碼對那些工作正常。我只是想知道爲什麼當我再次運行該命令時,它會覆蓋舊的文件信息,我該如何解決這個問題?

+1

用'open('summary.out','a')'替換open('summary.out','w')'在文件末尾附加新數據 –

+0

與http:// stackoverflow .com/questions/4706499/how-do-you-append-to-a-file-in-python – doctorlove

+1

如果以open方式打開文件,則不必執行f.close()。 –

回答

0

當你使用'w'時,你告訴Python寫入文件,就好像它是新的一樣。使用'a'追加到文件的末尾。這是第一行的樣子。

與開放(「summary.out」,「A」)爲f:

剛剛清理的東西了。然而,這不會清除文件,因此你也許應該有類似開放(「summary.out」 ,'w')。關閉之前清除文件。

+0

'with'語句不會清理嗎? – doctorlove