Python 使用fnmatch匹配文件名的两部分
我目前正在使用Python 使用fnmatch匹配文件名的两部分,python,regex,Python,Regex,我目前正在使用fnmatch查找我要复制的文件并忽略其余文件: 下面是我的一些脚本,只是为了举例说明如何使用它 pattern = "*.xlsx" if fnmatch(name, pattern): source_files.append(os.path.join(path, name)) 我所意识到的是,这也是目前匹配的隐藏文件,我不想复制 我看到了解决此问题的3个选项: 我可以将隐藏文件作为一个整体排除 我可以排除以~$开头的文件 或者我只能选择以Update开头,以.xls
fnmatch
查找我要复制的文件并忽略其余文件:
下面是我的一些脚本,只是为了举例说明如何使用它
pattern = "*.xlsx"
if fnmatch(name, pattern):
source_files.append(os.path.join(path, name))
我所意识到的是,这也是目前匹配的隐藏文件,我不想复制
我看到了解决此问题的3个选项:
~$
开头的文件Update
开头,以.xlsx
结尾的文件您有什么建议?使用
fnmatch
排除某些字符的功能,该功能也在
至于你问题中的最后一条评论——如果你觉得描述文件的最好方法是使用正则表达式,为什么不将
fnmatch
替换为re。match(…)不是None
?您必须使用fnmatch
?使用fnmatch
的原因是因为它是我推荐的。我是python新手,尤其是使用python对这样的文件进行操作。所以文件匹配和正则表达式是我从未做过的事情。因此,我对匹配函数缺乏理解。谢谢你的帮助,工作得很有魅力!
In [33]: fnmatch('hello.xlsx', '[!~]*.xlsx')
Out[33]: True
In [34]: fnmatch('~hello.xlsx', '[!~]*.xlsx')
Out[34]: False