我已运行此代码,但它只在文本文件中写入/ 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()
答案 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'允许您附加到文件。
我会推荐我的第一个解决方案;打开和关闭文件的成本很高。如果您要快速遍历项目以写入文件,您也可以将其保持打开状态。