Python标准库glob提供了glob()和iglob()两个函数用来枚举指定文件夹中符合特定模式的文件列表,支持“?”和“*”通配符。
>>> import glob
# 查找所有扩展名为txt的文件
>>> glob.glob('c:\\Windows/*.txt')
['c:\\Windows\\acct.txt', 'c:\\Windows\\area.txt', 'c:\\Windows\\authsel.txt', 'c:\\Windows\\eap.txt', 'c:\\Windows\\eapkeep.txt', 'c:\\Windows\\guest.txt', 'c:\\Windows\\info.txt', 'c:\\Windows\\language.txt', 'c:\\Windows\\msginfosize.txt']
# 查找所有以字母a开头的txt文件
>>> glob.glob('c:\\Windows/a*.txt')
['c:\\Windows\\acct.txt', 'c:\\Windows\\area.txt', 'c:\\Windows\\authsel.txt']
# iglob()函数返回迭代器
>>> glob.iglob('c:\\Windows/*.txt')
<generator object iglob at 0x000000000357C5A0>
>>> for i in glob.iglob('c:\\Windows/*.txt'):
print(i)
c:\Windows\acct.txt
c:\Windows\area.txt
c:\Windows\authsel.txt
c:\Windows\eap.txt
c:\Windows\eapkeep.txt
c:\Windows\guest.txt
c:\Windows\info.txt
c:\Windows\language.txt
c:\Windows\msginfosize.txt
# 查找所有主文件名中第二个字母是a的txt文件
>>> glob.glob('c:\\Windows/?a*.txt')
['c:\\Windows\\eap.txt', 'c:\\Windows\\eapkeep.txt', 'c:\\Windows\\language.txt']