如何在Python中区分文件和目录?

2024-06-09 22:10:03 发布

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

当使用os.listdir方法时,我需要知道结果列表中的哪个项是目录还是文件。

当我必须遍历这个列表中的所有目录,然后在每个目录中添加一个文件时,我遇到了一个问题。

有没有办法浏览这个列表并从中删除所有文件?如果不能使用os.listdir,应该使用什么方法?

谢谢。


Tags: 文件方法目录列表oslistdir办法项是
3条回答

dirs = filter(os.path.isdir, os.listdir('/path'))

注意,除非'/path'是当前工作目录,否则这将不起作用。listdir()返回叶名,因此您将询问“os.path.isdir('file.txt')”,如果当前目录在其他地方,您将看到错误的“file.txt”。

os.path.join()应该用于os.listdir()的输出,以获取完整的文件名。

children= [os.path.join('/path', child) for child in os.listdir('/path')]
directories= filter(os.path.isdir, children)

这可能更快:

current, dirs, files = os.walk('/path').next()

目录列表将位于dirs变量中。

使用os.path.isdir筛选出目录。可能有点像

dirs = filter(os.path.isdir, os.listdir('/path'))
for dir in dirs:
    # add your file

相关问题 更多 >