apache ant文件集和globs的实现
formic的Python项目详细描述
功能
formic是apache antFileSet and Globs的python实现,包括目录 通配符。
fileset提供了一种简洁的方式来指定一组文件,而不必 枚举单个文件。信息:
- 包含来自一个或多个ant globs的文件,然后
- 可选地排除与其他ant globs匹配的文件。
ant globs是普通文件系统globs的超集。关键区别:
- 它们匹配整个路径,例如/root/myapp/*.py
- **匹配any目录或directories,例如/root/**/*.pymatches /root/one/two/my.py
- 您可以匹配最上面的一个或多个目录,例如/root/**,或
- 文件的父目录,例如**/parent/*.py,或
- 任何父目录,例如**/test/**/*.py
这种方法实际上是其他几种语言和工具的标准, 包括apache ant和maven、ruby(dir)和perforce(…)。
python在fnmatcher和glob中内置了对简单glob的支持,但是formic:
- 可以递归扫描子目录
- 匹配路径中的任意目录(例如/1/**/2/**/3/**/*.py)。
- 具有高级接口:
- 指定一个或多个全局查找文件
- globs可用于排除文件
- ant和formic有一组default excludes。这些是文件和 默认情况下,自动从所有搜索中排除的目录。 其中大部分是与VCS相关的文件和目录(例如.svn 目录)。formic添加__pycache__。
- 遍历子树中的所有匹配项
- 在许多常见模式下效率更高;在 包含大量文件的大型目录树。
快速启动
formic可以通过简易安装或pip从cheeseshop安装:
$ easy_install formic
安装后,您可以从命令行使用formic:
$ formic -i "*.py" -e "__init__.py" "**/*test*/" "test_*"
这将搜索当前目录下的所有python文件 排除所有名为 单词“test”,以及任何开始test的文件。
或者直接集成到Python2.7项目中:
import formic fileset = formic.FileSet(include="**.py", exclude=["**/*test*/**", "test_*"] ) for file_name in fileset: # Do something with file_name ...
就这样:)
关于
formic由Andrew Alcock编写和维护 新加坡Aviser LLP的。
- Home page
- Issue tracker
- Source在Atlassian位桶上
- Email maintainer
Formic版权所有(c)2012,Aviser LLP,发布于 GPLv3。Aviser LLP很乐意 讨论其他许可安排;有关详细信息,请发送电子邮件给维护人员。