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” 中所有文件和目录的列表。