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

Bru*_* F. 2 python file list

使用 python,我得到了以下列表:

data = ['element0', 'element1', 'element2', 'element3']
Run Code Online (Sandbox Code Playgroud)

我想将每个元素写入“myfile.txt”的新行中,所以我一直在尝试这样做:

for x in data:
    open("myfile.txt", "w").write(x + "\n")
Run Code Online (Sandbox Code Playgroud)

这给了我这个(在“myfile.txt”内):

element3
Run Code Online (Sandbox Code Playgroud)

我看起来每次循环时都会将元素写入最后一个元素的顶部。

期望的结果(在“myfile.txt”内):

element0
element1
element2
element3
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 7

只需打开文件对象一次

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

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

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

但是,仅打开文件一次会更加高效。