ITADN
facelessuser/wcmatch
facelessuser/wcmatch · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Donate via PayPal Coverage Status PyPI Version PyPI Downloads PyPI - Python Version License

Wildcard Match

概述

Wildcard Match 提供了一个增强的 fnmatchglobpathlib 库,旨在提供与 Bash 中常见功能更为接近的文件匹配和 globbing。在某些方面,这些库与 Python 的 内置库相似,因为它们提供了类似的接口来匹配、过滤和 glob 文件系统。但它们还包含 Bash globbing 中的一些功能,例如反斜杠转义、花括号展开、扩展 glob 模式组等。 它们还添加了许多新的实用函数,例如 globmatch,其功能类似于 fnmatch,但针对 路径。

Wildcard Match 还添加了一个名为 wcmatch 的文件搜索实用工具,它构建在 fnmatchglobmatch 之上。它 最初是为 Rummage 编写的,但后来被拆分到本项目中,以便 其他可能觉得其方法有用的项目使用。

Bash 在决定 fnmatchglob 的行为时用作参考。行为可能会因 Bash 版本而异,但会尝试使 Wildcard Match 与最新的相关更改保持一致。话虽如此,在某些边缘情况下,我们可能有意选择不完全精确地镜像 Bash。如果发现 Wildcard Match 似乎以不合逻辑的方式偏离了 Bash,我们很乐意在 issue tracker 中听取您的反馈。

功能

Wildcard Match 功能的简要概述:

  • 提供与 Python 内置的 fnmatchglobpathlib 可比的接口。
  • 在匹配或 glob 时,允许通过更多功能实现更高度可配置的体验。
  • 在 glob 中添加对 ** 的支持。
  • 添加对 Zsh 风格的 *** 符号链接递归 glob 的支持。
  • 添加使用 \ 转义字符的支持。
  • 添加对序列内 POSIX 风格字符类的支持:[[:alnum:]] 等。使用 C 区域设置。
  • 添加对花括号展开的支持:a{b,{c,d}} --> ab ac ad
  • 添加将 ~~username 展开为相应用户路径的支持。
  • 添加对扩展匹配模式的支持:@(...)+(...)*(...)?(...)!(...)
  • 添加通过以路径为中心的 globmatch 匹配路径名的能力。
  • 提供使用 Wildcard Match 的 glob 库而不是 Python 默认库的 pathlib 变体。
  • 提供名为 wcmatch 的替代文件爬虫。
  • 等等...

安装

使用 pip 安装很简单:

pip install wcmatch

文档

https://facelessuser.github.io/wcmatch/

许可证

MIT