2016-08-29 66 views
0

使用Python,我有以下列表:如何將每個列表元素寫入文本文件的每一行?

data = ['element0', 'element1', 'element2', 'element3'] 

我想寫的每個元素,分爲「myfile.txt的」新線,所以我一直在想這樣的:

for x in data: 
    open("myfile.txt", "w").write(x + "\n") 

這給了我這個(內部「myfile.txt的」):

element3 

我看起來每次經過循環時間等,所以在最後的頂部寫的元素。

期望的結果(內部 「myfile.txt的」):

element0 
element1 
element2 
element3 

回答

4

只要打開該文件對象一次

with open("myfile.txt", "w") as fobj: 
    for x in data: 
     fobj.write(x + "\n") 

我使用的文件作爲上下文管理通過傳遞給with聲明;這可以確保文件在代碼塊完成後再次關閉。

每次用'w'(寫入)模式打開文件對象時,該文件都是被截斷的,清空。您必須使用'a'(追加)模式來防止文件被截斷。

但是,只打開一次文件效率更高。

相關問題