gpt4 book ai didi

python - 使用 fnmatch 匹配文件名的 2 部分

转载 作者:行者123 更新时间:2023-12-01 05:02:57 26 4
gpt4 key购买 nike

我目前正在使用 fnmatch 查找我想要复制的文件并忽略其余文件:

下面是我的一些脚本,只是为了举例说明如何使用它。

pattern = "*.xlsx"

if fnmatch(name, pattern):
source_files.append(os.path.join(path, name))

我意识到这当前也匹配隐藏文件,我不想复制这些文件。

我看到解决此问题的 3 个选项:

  1. 我可以排除整个隐藏文件。
  2. 我可以排除以 ~$ 开头的文件。
  3. 或者我只能选择以 Update 开头.xlsx 结尾的文件

我认为描述我想要复制的文件类型的最简单方法是使用正则表达式,但我不认为 fnmatch 接受完整的正则表达式。

你会推荐什么?

最佳答案

使用fnmatch排除某些字符的能力,也在 docs 中指定

In [33]: fnmatch('hello.xlsx', '[!~]*.xlsx')
Out[33]: True

In [34]: fnmatch('~hello.xlsx', '[!~]*.xlsx')
Out[34]: False

至于您问题中的最后一条评论 - 如果您认为描述文件的最佳方式是使用正则表达式,为什么不替换 fnmatchre.match(...) is not None ?必须用fnmatch

关于python - 使用 fnmatch 匹配文件名的 2 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com