【问题标题】:Not listing the file specified in regex with fnmatch不使用 fnmatch 列出正则表达式中指定的文件
【发布时间】:2020-09-27 15:54:54
【问题描述】:

我试图只列出我的目录中的指定文件,但只得到空结果。当我使用正则表达式测试器 (https://regex101.com/) 检查预期结果时,我得到了预期结果。

但在 python 代码中,我什么也看不到。

我在正则表达式字符串中尝试了一些其他组合,但没有任何帮助。我可以列出整个目录。

我做错了吗?它看起来很简单,所以我错过了什么?

代码在这里:

import os
import fnmatch

directory = 'output/'

for filename in os.listdir(directory):
    if fnmatch.fnmatch(filename, '^[20]+[0-9]+\.xlsx$'):
        print(filename)

你能看一下并给我一些提示吗?

非常感谢

【问题讨论】:

  • fnmatch 不支持正则表达式。

标签: glob fnmatch


【解决方案1】:

好的,谢谢 Wiktor 的回复。在那之后,我寻找一种解决方法,并提出了这个。

x = re.search("^[20]+[0-9]+\.xlsx$", filename)
            if x is not None:
                print(filename)

我得到了令人满意的结果,所以我想,我可以关闭这个。

非常感谢。

【讨论】:

    猜你喜欢
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2011-09-05
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多