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 spyder
,pyscripter
问题仍然存在,无论ide如何。
我在 tempa jpg , pdf 和 mov 的文件夹中有一些媒体......我想要获取所有这些文件的文件列表,代码可以正常工作,但在第113行时没有任何问题,对它停止的文件没什么特别的,没有奇怪的字符。
我可以为每个文件夹设置3个代码块,以解决这个奇怪的错误。但它不应该有问题..文件夹都在根文件夹中而不会在子文件夹中太深:
C:\
-tempa
-jpg
-pdf
-mov
我听说过os.walk存在问题,但我并没有像这样发现任何奇怪的东西。
也许我需要f=close
?
答案 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()