from os import listdir
from os.path import isfile, join
import csv
onlyfiles = [f for f in listdir("./") if isfile(join("./", f))]
with open('file_name.csv', 'w') as print_to:
writer = csv.writer(print_to)
writer.writerow(onlyfiles)
from glob import glob
with open('/tmp/filelist.csv', 'w') as fout:
# write the csv header optional
fout.write("filename\n")
# write each filename with a newline characer
fout.writelines(['%s\n' % fn for fn in glob('/path/to/*.pdf')])
首先,您需要从获取目录中的所有文件开始,然后简单地将它们写入一个文件。在
请注意
第5行的
"./"
是您要从中获取文件的目录。在请将
'file_name.csv'
也替换为要更正的文件名。在这可能会得到改进,以您需要的方式来显示文件名,比如用于取回文件名或其他东西。例如,这很可能不会包括UTF-8格式的unicode文件名,但会使编码变得一团糟,但很容易解决所有这些问题。在
如果你有非常大的dir,有很多文件,你可能需要等待一段时间操作系统列表目录()把它们都弄到手。这也可以通过使用其他方法来解决,而不是操作系统列表目录(). 在
要区分文件和子目录,请参阅Michael的答案。在
另外,使用os.path.isfile文件()或操作系统路径.isdir()如果您愿意,您可以递归地获取所有子目录。在
像这样:
^{pr2}$以下操作将创建包含所有*.pdf文件的csv文件:
glob()
是使用listdir的一个很好的快捷方式,因为它支持通配符。在相关问题 更多 >
编程相关推荐