将目录中所有文件名导出到文本文件
我有这样的代码,但问题是它在output.txt中只输出了最后一个文件名,而不是所有30个文件名。
import os
path="path I wanted"
dirList=os.listdir(path)
for filename in dirList:
print (filename)
f = open("output1.txt", "w")
f.write(filename)
f.close()
3 个回答
1
试试这个方法,做了一些额外的改进:
import os
with open('myfile.txt', 'w') as file:
file.writelines([f for f in os.listdir(path)])
你在每次循环时都在覆盖文件。所以,我们在写入所有行之前先 open
(打开)它。
1
你在每次循环的时候都在覆盖这个文件。应该在一开始就打开它:
import os
path="path I wanted"
dirList=os.listdir(path)
with open("output1.txt", "w") as f:
for filename in dirList:
print (filename)
f.write(filename)
0
在循环中使用 'open' 函数时,如果你用 'w' 这个标志,每次循环都会把文件内容清空。如果文件已经存在,建议用 'a' 这个标志。想了解更多信息,可以查看 这里。