如何在Python中将列表输出写入文本文件
我已经运行了这段代码,但它只在文本文件中写入/home中的第一个目录如何在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/
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——总有一天会学会理解的。”。没有比现在更好的时间了…:-)