简单的python文件搜索和记录到csv

时间:2014-05-20 00:05:33

标签: python csv os.walk

import os, csv


f=open("C:\\tempa\\file.csv", 'wb')  #write to an existing blank csv file
w=csv.writer(f)
for path, dirs, files, in os.walk("C:\\tempa"):
    for filename in files:
        w.writerow([filename])

运行win7 64bit最新的python,使用anaconda spyderpyscripter问题仍然存在,无论ide如何。

我在 tempa jpg pdf mov 的文件夹中有一些媒体......我想要获取所有这些文件的文件列表,代码可以正常工作,但在第113行时没有任何问题,对它停止的文件没什么特别的,没有奇怪的字符。

我可以为每个文件夹设置3个代码块,以解决这个奇怪的错误。但它不应该有问题..文件夹都在根文件夹中而不会在子文件夹中太深:

C:\
-tempa
 -jpg
 -pdf
 -mov

我听说过os.walk存在问题,但我并没有像这样发现任何奇怪的东西。

也许我需要f=close

1 个答案:

答案 0 :(得分:0)

您在完全关闭之前检查了该文件。 (f不会被关闭,直到至少它不再被任何范围内的变量名称引用。)如果你在文件关闭之前检查它,你可能看不到最终的,部分的,数据缓冲区。

使用file对象的上下文管理器确保在所有情况下都刷新并关闭文件:

import os, csv

with open("C:\\tempa\\file.csv", 'wb') as f:  #write to an existing blank csv file
    w=csv.writer(f)
    for path, dirs, files, in os.walk("C:\\tempa"):
        for filename in files:
            w.writerow([filename])
    # Now no need for f.close()