使用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
答案 0 :(得分:4)
只需打开文件对象一次:
with open("myfile.txt", "w") as fobj:
for x in data:
fobj.write(x + "\n")
我将该文件作为上下文管理器使用,并将其传递给with
语句;这可确保在代码块完成后再次关闭文件。
每次使用'w'
(写入)模式打开文件对象时,文件截断,清空。您必须使用'a'
(追加)模式来阻止文件被截断。
但是,只打开一次文件效率更高。