如何在Python中将列表输出写入文本文件

如何在Python中将列表输出写入文本文件,python,list,text,Python,List,Text,我已经运行了这段代码,但它只在文本文件中写入/home中的第一个目录 for item in os.listdir('/home'): text_file_1 = open('/tmp/home_dir.txt', 'wb') text_file_1.write('%s\n' % item) text_file_1.close() 您应该在循环外部打开文件。否则,每次打开它时都会“重新开始” 上下文管理器(带有语句)是打开文件的首选方式 with open('/tmp/

我已经运行了这段代码,但它只在文本文件中写入/home中的第一个目录

for item in os.listdir('/home'):
    text_file_1 = open('/tmp/home_dir.txt', 'wb')
    text_file_1.write('%s\n' % item)
    text_file_1.close()

您应该在循环外部打开文件。否则,每次打开它时都会“重新开始”

上下文管理器(
带有
语句)是打开文件的首选方式

with open('/tmp/home_dir.txt', 'w') as  text_file_1:
    for item in os.listdir('/home'):
        text_file_1.write('%s\n' % item)

我想您会发现这是os.listdir()中的最后一项

试试这个:

text_file_1 = open('/tmp/home_dir.txt', 'w')

for item in os.listdir('/home'):
    text_file_1.write('%s\n' % item)

text_file_1.close()
或者这个:

for item in os.listdir('/home'):
    text_file_1 = open('/tmp/home_dir.txt', 'a')
    text_file_1.write('%s\n' % item)
    text_file_1.close()
当您打开新的文件句柄并用“w”写入文件时,它将完全覆盖其中原来的内容

“a”允许您附加到文件中


我会推荐我的第一个解决方案;打开和关闭文件的成本很高。如果您要快速循环项目以写入文件,您最好将其保持打开状态。

好的,您在写入一行后关闭文件。它实际上应该写入最后一行。或者,
text\u file\u 1.writelines(fname+'\n'用于os.listdir('/home'))中的fname)
当然也可以,但我认为这对初学者来说更清楚。你推荐哪一个?@mgilson的答案更短,而我的答案更清楚。随便你喜欢哪个。“从功能上讲,它们几乎是一模一样的。@mhlester——总有一天会学会理解的。”。没有比现在更好的时间了…:-)