将目录中所有文件名导出到文本文件

2 投票
3 回答
3778 浏览
提问于 2025-04-17 21:10

我有这样的代码,但问题是它在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' 这个标志。想了解更多信息,可以查看 这里

撰写回答