我正在尝试使用 Python 获取目录中的文件列表,但我不需要所有文件的列表。我本质上想要的是能够执行如下操作,但使用 Pytho...
我正在尝试使用 Python 获取目录中的文件列表,但我不想要所有文件的列表。
我本质上想要的是能够执行类似以下的操作,但使用 Python 而不是执行 ls。
ls 145592*.jpg
如果没有内置方法,我目前正在考虑编写一个 for 循环来迭代结果 os.listdir()
并将所有匹配的文件附加到新列表中。
但是,该目录中有很多文件,因此我希望有一种更有效的方法(或内置方法)。
glob
模块的过滤器:
import glob
files=glob.glob("data/*")
print(files)
Out:
['data/ks_10000_0', 'data/ks_1000_0', 'data/ks_100_0', 'data/ks_100_1',
'data/ks_100_2', 'data/ks_106_0', 'data/ks_19_0', 'data/ks_200_0', 'data/ks_200_1',
'data/ks_300_0', 'data/ks_30_0', 'data/ks_400_0', 'data/ks_40_0', 'data/ks_45_0',
'data/ks_4_0', 'data/ks_500_0', 'data/ks_50_0', 'data/ks_50_1', 'data/ks_60_0',
'data/ks_82_0', 'data/ks_lecture_dp_1', 'data/ks_lecture_dp_2']
.txt
:
files = glob.glob("/home/ach/*/*.txt")
glob.glob("/home/ach/file?.txt")
glob.glob("/home/ach/*[0-9]*")
glob.glob("/home/ach/[a-c]*")