我正在尝试编写一个Python脚本来打印目录中的文件列表。

2024-09-28 21:15:59 发布

您现在位置:Python中文网/ 问答频道 /正文

因为标题意味着我正在寻找创建一个脚本,允许我打印一个目录中的文件名列表到一个CSV文件。在

我在我的桌面上有一个文件夹,包含大约150个pdf文件。我希望能够有文件名打印到csv。在

我对Python是全新的,可能会因为这个项目而跳出煎锅跳进火里。在

有谁能给我一点帮助吗?在


Tags: 文件csv项目目录脚本文件夹标题列表
3条回答

首先,您需要从获取目录中的所有文件开始,然后简单地将它们写入一个文件。在

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)

请注意

第5行的"./"是您要从中获取文件的目录。在

请将'file_name.csv'也替换为要更正的文件名。在

import os
csvpath = "csvfile.csv"
dirpath = "."
f = open("csvpath, "wb")
f.write(",".join(os.listdir(dirpath)))
f.close()

这可能会得到改进,以您需要的方式来显示文件名,比如用于取回文件名或其他东西。例如,这很可能不会包括UTF-8格式的unicode文件名,但会使编码变得一团糟,但很容易解决所有这些问题。在

如果你有非常大的dir,有很多文件,你可能需要等待一段时间操作系统列表目录()把它们都弄到手。这也可以通过使用其他方法来解决,而不是操作系统列表目录(). 在

要区分文件和子目录,请参阅Michael的答案。在

另外,使用os.path.isfile文件()或操作系统路径.isdir()如果您愿意,您可以递归地获取所有子目录。在

像这样:

^{pr2}$

以下操作将创建包含所有*.pdf文件的csv文件:

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')])

glob()是使用listdir的一个很好的快捷方式,因为它支持通配符。在

相关问题 更多 >