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

时间:2014-02-25 18:12:11

标签: 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()

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

我想你会发现它是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'允许您附加到文件。

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