将所有文件列出到文本文件的目录名称

时间:2014-03-06 18:27:31

标签: python python-3.3

我的代码是这样的,但问题是它只提供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 个答案:

答案 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