如何将列表的每个元素写入文本文件的每一行?

时间:2016-08-29 15:37:03

标签: python list file

使用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

1 个答案:

答案 0 :(得分:4)

只需打开文件对象一次

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

我将该文件作为上下文管理器使用,并将其传递给with语句;这可确保在代码块完成后再次关闭文件。

每次使用'w'(写入)模式打开文件对象时,文件截断,清空。您必须使用'a'(追加)模式来阻止文件被截断。

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