我的代码是这样的,但问题是它只提供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()
答案 0 :(得分: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)
答案 1 :(得分:1)
尝试这一点,并进行一些额外的改进:
import os
with open('myfile.txt', 'w') as file:
file.writelines([f for f in os.listdir(path)])
您在每次迭代中都会覆盖该文件。因此,在将所有行写入open
之前,我们file
。
答案 2 :(得分:0)
'open'的'w'标志在循环的每次迭代中截断文件。如果文件已存在,请改用“a”标志。有关详细信息,请参阅here。