apache ant文件集和globs的实现

formic的Python项目详细描述


功能

formic是apache antFileSet and Globs的python实现,包括目录 通配符。

fileset提供了一种简洁的方式来指定一组文件,而不必 枚举单个文件。信息:

  1. 包含来自一个或多个ant globs的文件,然后
  2. 可选地排除与其他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在fnmatcherglob中内置了对简单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的。

Formic版权所有(c)2012,Aviser LLP,发布于 GPLv3。Aviser LLP很乐意 讨论其他许可安排;有关详细信息,请发送电子邮件给维护人员。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java打开另一个阶段JavaFX时将光标更改为等待   java为什么我的图形不显示?   Anylogic Java RuntimeException   java Spring应用程序在jar中构建后不工作   java无法使用Play 2.5发送异步电子邮件   java在尝试获取新连接时可丢弃:null:javax。资源ResourceException:无法创建连接   SWT应用程序的java本地化日期时间控件   导航抽屉上的java动画在所有设备上都不平滑   java需要关于等待超时的帮助   在Java中捕获nullpointerexception   java将公共JSP与自定义Servlet和Struts 2结合使用   java HttpClient与NTLM身份验证提供程序发生协商错误   java使用对象数组获取数据   java我应该使用任务队列将文档添加到AppEngine上的索引中吗