问题标签 [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 投票
2 回答
399 浏览

python - Python fnmatch,检查存在的文件

我有一个任务,我想检查目录中是否存在特殊文件 *.part。如果文件存在,请再次检查,如果不存在,则打印“文件已删除”。

我使用 os.listdir(),接下来对于 lisdir 中的每个文件,我使用 fnmatch(file, '*.part'),然后再次获取 lisdir 并递归地涉及相同的函数。

当我删除这个文件时,fnmatch 返回“true”。我无法理解……“为什么”?

这是我的代码:

谢谢!

0 投票
3 回答
1647 浏览

python - 使用 fnmatch 排除文件

我正在 Python 中创建一个循环,该循环使用fnmatch.filter(). 目前我正在浏览特定文件夹中的所有 .csv 文件,如下所示:

我想做的是排除模式为“Test*”的文件。这是否可能与fnmatch有关。在最坏的情况下,我只会创建另一个内部 if 循环,但更喜欢更清洁的解决方案。

0 投票
1 回答
124 浏览

python - 查询 Python fnmatch 模块?

我正在搜索该fnmatch模块,在此过程中,我遇到了一个我不知道发生了什么的声明……谁能帮助我?我需要知道-25这段代码的用途是什么:

print 'Filename: %-25s %s' % (name, fnmatch.fnmatchcase(name, pattern))

0 投票
1 回答
60 浏览

python-3.x - 为什么使用shututil在循环内移动文件时找不到文件错误?

我正在尝试使用 fnmatch 将文件组织到特定文件夹中,但由于某种原因,文件一旦通过我编写的循环就无法移动或复制。我确保每个目录都正确命名和打印,以检查我的程序是否正常工作。

import os import shutil import fnmatch from pathlib import Path for dirpath, dirnames, files in os.walk('.'): for file_name in files: if fnmatch.fnmatch(file_name, "808"): shutil.copy(file_name, ".") FileNotFoundError: [Errno 2] No such file or directory: 'KSHMR_Trap_808_07_F.wav

0 投票
2 回答
214 浏览

python - 根据文件名加快文件匹配

所以我有 2 个具有 2 种不同文件类型(例如 .csv、.png)但具有相同基本名称(例如 1001_12_15.csv、1001_12_15.png)的目录。我在每个目录中有数千个文件。

我想要做的是在匹配基本名称之后获取文件的完整路径,然后对两个文件的完整路径执行一些操作。

我正在寻求有关如何加快该过程的帮助。

我的做法是:

此外,我尝试了 fnmatch 类似的东西:

似乎使用嵌套的 for 循环更快。但我希望它更快。还有其他方法可以加快我的代码吗?

0 投票
1 回答
453 浏览

python - 通过变量或模式匹配和变量组合的动态 fnmatch 模式

我试图找出在变量中存储动态或变化值的最佳方法,并将该变量用作我在 fnmatch 中的模式搜索的一部分。很可能 fnmatch 不是正确的方法吗?

尽量保持简单。我正在从一个目录中读取文件列表,该目录的日期字符串每天都在变化。我想验证我要查找的文件是否存在,现在只需打印文件名。

这有效...

我看到的是我想进一步评估的文件:

但是我想在模式行中做的是使用f_date它返回字符串20190923而不是输入日期字符串。是否可以匹配模式字符串中的文本和变量的组合,以便我可以执行以下操作:if fnmatch.fnmatch(fname, '*data*[my variable]*'):

0 投票
0 回答
469 浏览

python - 从 Pandas 数据框中的路径移动文件

我有一个文件夹,里面有大约 600,000 张照片。我需要移动其中的 500 张照片。我有一个数据框,其中这些文件路径作为其中一列中的值。我需要能够遍历该数据框,提取特定图像并将其设置在另一个文件夹中。

路径是包含文件的完整路径。还有一个文件列,其中只有文件名。

以下是数据框的示例:

以下是我尝试过的。它是基于通配符的移动文件的修改版本。

我还尝试了以下方法:

0 投票
1 回答
182 浏览

c++ - 有没有办法仅将 fnmatch 的 FNM_PATHNAME 标志应用于斜杠的第一个实例?

嗨,我正在尝试使用具有某些规则的 fnmatch 执行通配符屏蔽的方法。

在字符串中找到斜杠“/”的第一个实例时,它必须与模式中的斜杠(“/”)完全匹配。即通配符('*')将无法匹配。但是,可以使用通配符匹配输入字符串中的后续斜杠。

例如,对于期望的结果:

字符串 a/b/c 应该使用/匹配。即匹配“b”后的第二个“/”,但不匹配“a”后的第一个斜杠。

字符串: a/b/c模式: / 结果:匹配。因为 str 中 '/' 的第一个实例在模式中有一个明确的 '/'

字符串: a/b/c模式: * 结果:不匹配。因为 str 中“/”的第一个实例没有明确的“/”

我已经使用 fnmatch 尝试了以下代码部分

-> 如果我需要将字符串中的每个“/”映射到模式中的“/”,则使用 FNM_PATHNAME 标志的上述代码成功工作。但如果我需要将其限制为仅一审,则不是。

-> 我可以使用 fnmatch 继续处理这个问题,还是需要依赖任何其他 posix 功能。请帮忙。

0 投票
1 回答
122 浏览

python - Working with multiple filename patterns in python

I'm struggling to get a couple of things together as, since I've got a code together that works with a particular file pattern (i.e FILENAME_IDENTIFIER_NUMBER.filetype) I have some old files that do not match this particular filename structure that are throwing up errors when I'm trying to work with the mixed names.

is there a way that I can search for files that do not match this file structure? I have tried using glob and cannot get it to match. fnmatch when used with _. will give me both options as the wildcard presumably accepts anything after the first underscore anyway.

for example I will have, in multiple directories, filenames such as:

filename_identifier_number.extension filename_number.extension

where I would normally split the above with:

this will work but obviously I will get the error when there is only one underscore in the filename.

Can I either ignore this error? (I have tried the below):

However this doesn't work.

or is there a way I can search for any filename which doesn't match the format I require (filename_identifier_number) and develop something that handles them in another way?

Thanks,

0 投票
0 回答
55 浏览

python - Python:如何处理 glob 和 fnmatch 文件名中的国际字符?

我想遍历目录中的所有文件。我试过 glob:

我尝试了 fnmatch:

如果文件名包含德语字符 (ä,ö,ü,...),则 print 函数会打印一个空行。在这种情况下如何处理国际字符?

更新
适用于 Debian 上的 GIMP 2.10.16 Python-Fu Console 2.7.17,但不适用于 Windows 系统(相同版本)。

而且我第二次在控制台中粘贴并执行脚本时才得到空行。GIMP/Pythen-Fu 第一次启动后,文件列表中显示很多错误信息,而不是正确的文件名:

C:\Users\jamacoe\AppData\Local\Programs\GIMP 2\lib\gimp\2.0\plug-ins\python-console/pyconsole.py:74: GtkWarning: gtk_text_buffer_emit_insert: 断言 'g_utf8_validate (text, len, NULL) ' 失败 self.buffer.insert_with_tags_by_name(pos, text, self.tag_name)
C:\Users\jamacoe\AppData\Local\Programs\GIMP 2\lib\gimp\2.0\plug-ins\python-console/pyconsole.py: 74:GtkWarning:无效的文本缓冲区迭代器:迭代器未初始化,或者缓冲区中的字符/pixbufs/小部件自迭代器创建以来已被修改。
您必须使用标记、字符编号或行号来跨缓冲区修改保留位置。
您可以在不使迭代器失效的情况下应用标签和插入标记,但任何影响“可索引”缓冲区内容(可以通过字符偏移量引用的内容)的突变
都会使所有未完成的迭代器失效
self.buffer.insert_with_tags_by_name(pos, text, self. tag_name)
C:\Users\jamacoe\AppData\Local\Programs\GIMP 2\lib\gimp\2.0\plug-ins\python-console/pyconsole.py:74: GtkWarning: gtk_text_buffer_apply_tag_by_name: 断言 'gtk_text_iter_get_buffer (end) ==缓冲区失败
self.buffer.insert_with_tags_by_name(pos, text, self.tag_name)