协慌网

登录 贡献 社区

如何列出目录的所有文件?

如何在 Python 中列出目录的所有文件并将其添加到list

答案

os.listdir()将为您提供目录中的所有内容 - 文件和目录。

如果您想要文件,可以使用os.path进行过滤:

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

或者您可以使用os.walk() ,它会为它访问的每个目录生成两个列表 - 为您分割成文件和目录。如果你只想要顶级目录,你可以在它第一次产生时中断

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break

最后,正如该示例所示,将一个列表添加到另一个列表,您可以使用.extend()

>>> q = [1, 2, 3]
>>> w = [4, 5, 6]
>>> q = q + w
>>> q
[1, 2, 3, 4, 5, 6]

就个人而言,我更喜欢.extend()

我更喜欢使用glob模块,因为它模式匹配和扩展。

import glob
print(glob.glob("/home/adam/*.txt"))

它将返回包含查询文件的列表:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
import os
os.listdir("somedirectory")

将返回 “somedirectory” 中所有文件和目录的列表。