python - 你将如何在 python 中实现 ant-style patternsets 来选择文件组?

标签 python file ant

Ant 有一种很好的方法来选择文件组,最方便的是使用 ** 来指示目录树。例如

**/CVS/*            # All files immediately under a CVS directory.
mydir/mysubdir/**   # All files recursively under mysubdir

更多例子可以在这里看到:

http://ant.apache.org/manual/dirtasks.html

你将如何在 python 中实现它,以便你可以执行如下操作:

files = get_files("**/CVS/*")
for file in files:
    print file

=>
CVS/Repository
mydir/mysubdir/CVS/Entries
mydir/mysubdir/foo/bar/CVS/Entries

最佳答案

抱歉,距离您的 OP 已经过去很长时间了。我刚刚发布了一个 Python 包,它就是这样做的——它叫做 Formic,可以在 PyPI Cheeseshop 获得。 .使用 Formic,您的问题可以通过以下方式解决:

import formic
fileset = formic.FileSet(include="**/CVS/*", default_excludes=False)
for file_name in fileset.qualified_files():
    print file_name

有一个稍微复杂的地方:default_excludes。 Formic,就像 Ant 一样,默认情况下排除 CVS 目录(因为大多数情况下从中收集文件进行构建是危险的),问题的默认答案将导致没有文件。设置 default_excludes=False 会禁用此行为。

关于python - 你将如何在 python 中实现 ant-style patternsets 来选择文件组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/161755/

相关文章:

python - 如何将表达式字符串拆分为 Python 中的列表?

python - Python 中的分层 K 折叠

jquery - 获取上传文件数

file - 如何在groovy中提取文件属性?

java - BufferedReader 跳过行 Assets 文件 java android

Gradle ant ftp错误: "425 Connection timed out"

Java-Ant集成问题

python - NLTK:为什么 nltk 不能识别 stanford-ner 的 CLASSPATH 变量?

android - 使用ant构建Android项目时如何在build.properties中指定多个源文件夹?

python - 如何隐藏除文件类型之外的所有内容