问题标签 [fnmatch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
28 回答
870623 浏览

python - 如何使用 glob() 递归查找文件?

这就是我所拥有的:

但我想搜索 src 的子文件夹。像这样的东西会起作用:

但这显然是有限且笨重的。

0 投票
28 回答
543370 浏览

python - 如何使用 Python 计算目录中的文件数

我需要使用 Python 计算目录中的文件数。

我想最简单的方法是len(glob.glob('*')),但这也将目录本身视为一个文件。

有没有办法只计算目录中的文件

0 投票
5 回答
1409 浏览

php - 路径信息与 fnmatch

关于 fnmatch 对 pathinfo 的速度有一个小争论:如何检查文件是否为 php?

我并不完全相信,所以决定对这两个函数进行基准测试。

使用动态和静态路径表明 pathinfo 更快。

我的基准测试逻辑和结论是否有效?

编辑:从 cmd 使用 mac php

PHP 5.3.0 (cli)(构建时间:2009 年 7 月 20 日 13:56:33) 版权所有 (c) 1997-2009 The PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2009 Zend Technologies

动态路径 pathinfo 3.2973630428314 fnmatch 3.4520659446716 x1.05

静态路径 pathinfo 0.86487698554993 fnmatch 1.0420439243317 x1.2

来自cmd的mac xampp php

PHP 5.3.1 (cli)(构建时间:2010 年 2 月 27 日 12:41:51) 版权所有 (c) 1997-2009 The PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2009 Zend Technologies

动态路径 pathinfo 3.63922715187 fnmatch 4.99041700363 x1.37

静态路径 pathinfo 1.03110480309 fnmatch 2.38929820061 x2.32

我在我的机器上包含了一个以秒为单位进行 100,000 次迭代的结果样本:

代码:

0 投票
2 回答
1838 浏览

python - 获取与 fnmatch 不匹配的元素

我正在使用递归全局查找文件并将其从驱动器复制到另一个驱动器

工作正常。但我也想访问与过滤器不匹配的元素。

有人可以提供一些帮助吗?我可以在循环中构建一个正则表达式,但必须有一个更简单的解决方案,对吧?

0 投票
2 回答
3001 浏览

python - .gitignore 样式 fnmatch()

使用 Python 使用 .gitignore 样式的 fnmatch() 最简单的方法是什么。看起来 stdlib 没有提供 match() 函数,该函数将路径规范与 UNIX 样式路径正则表达式匹配。

.gitignore 有通配符的路径和文件都被列入(黑)名单

0 投票
13 回答
234007 浏览

python - 如何使用 glob.glob 模块搜索子文件夹?

我想在一个文件夹中打开一系列子文件夹并找到一些文本文件并打印一些文本文件的行。我正在使用这个:

但这也不能访问子文件夹。有谁知道我如何使用相同的命令来访问子文件夹?

0 投票
4 回答
4928 浏览

python - fnmatch 和递归路径匹配 `**`

是否有任何内置或直接的方法可以递归地匹配带有双星号的路径,例如像zsh那样?

例如,与

我可以使用fnmatch来测试它

虽然,我希望能够做到:

我知道 fnmatch将其模式映射到 regex,所以在这种情况下,我可以使用其他模式滚动我自己的 fnmatch **,但也许有更简单的方法

0 投票
2 回答
282 浏览

python - 在 python 中将普通文件名与 fnmatch 模式分开

我的 python 函数有一个(长)路径参数列表,每个参数都可能是一个 glob。我通过这个列表glob.glob来提取所有匹配的文件名,如下所示:

这行得通,但是我所在的文件系统对于目录列表操作的性能非常差,目前这个操作增加了我程序的启动时间大约一分钟(!)。因此,我只想对非平凡的 glob 模式(即那些不仅仅是普通路径名的模式)执行 glob 扩展以加快速度。IE

由于glob.glob基本上做了一组与 结合的目录列表fnmatch.fnmatch,我认为应该可以以某种方式询问fnmatch给定的字符串是否是非平凡的模式,但我不知道该怎么做。

作为后备方案,我想我可以尝试自己识别字符串中的这些模式,尽管这感觉很像重新发明轮子,而且容易出错。但这感觉像是应该有一个优雅的解决方案的那种事情。

0 投票
2 回答
3672 浏览

python - Python,如何实现类似 .gitignore 的行为

我需要列出当前目录 (.) 中的所有文件(包括所有子目录),并排除一些文件作为 .gitignore 的工作方式(http://git-scm.com/docs/gitignore

使用 fnmatch ( https://docs.python.org/2/library/fnmatch.html ) 我将能够使用模式“过滤”文件

如何“过滤”并获取与“ignore_files”的一个或多个元素不匹配的所有文件?

谢谢!

0 投票
2 回答
4483 浏览

python - 否定 fnmatch 模式

考虑这种模式:*.py. 它匹配所有以扩展名结尾的路径py。现在,是否有可能找到与其他所有内容匹配的模式?

我认为这会做到这一点:*[!.][!p][!y],但显然fnmatch.fnmatch总是False带着这个返回。

我想避免使用正则表达式。我知道我可以使用它们,但在这种情况下是不可能的。