匹配文件名的Python正则表达式,使用os.walk()获取文件名
我正在使用 os.walk() 来获取文件名。我需要做的是创建一个列表,里面包含符合以下模式的文件名:
如果 '*'
,那么会匹配所有文件。
如果 'h*'
,那么会匹配所有以 h 开头的文件。
如果 '*h'
,那么会匹配所有以 h 结尾的文件。
如果 '*h*'
,那么会匹配所有包含 h 的文件。
如果 [h-w]*
,那么会匹配集合中的任意一个字符,包括集合的否定 [^h-w]。
我对正则表达式还不太熟悉,创建一个 if 语句来处理这个问题时遇到了困难。有人能给我解释一下吗(最好能附带代码示例)?谢谢。
1 个回答
1
我试了 fnmatch
,效果非常好,特别感谢 Charles Duffy 的帮助。以下是我的代码:
for dp, dn, filenames in os.walk(path):
for ff in filenames:
if fnmatch.fnmatch(ff, 'My patterns here'):
list.append(os.path.join(dp, ff))