【发布时间】:2023-02-23 04:23:46
【问题描述】:
我想使用 python 中的 glob 库对文件名应用多个过滤器。我浏览了一些在线资源,可以看到使用 * 操作,可以这样做。但是,我的过滤器无法正常工作,因为我试图同时应用多个过滤器。它读取的文件多于应有的数量。
假设我的文件存储有如下日期信息。我有年、月、日信息作为扩展。例如,名称my_file_20220101A1835.txt 表明该文件是从 2022 年 1 月 1 日开始的,并在下午 6 点 35 分保存。如果我想获取前六个月上半年的 2022 年到 2023 年之间的所有文件,我将使用以下行。
folder_path = "...'
glob.glob(f"{folder_path }/*[2022-2023]**[01-06]**[01-15]*"A"*[01-24]**[00-60]*.pq")
有没有一种结构化的方法可以有效地执行此操作?
【问题讨论】:
-
您可以使用
glob获取所有内容,然后通过正则表达式过滤结果。 -
这不是 glob 模式擅长的事情。您不能像这样指定字符范围。
[2022-2023]等同于[203],[01-15]等同于[015]。 -
@Peter 你能举个玩具例子吗?
-
A/B/C只是单个/常量字符吗?它们在任何方面都有意义,还是只是分隔符(例如:-)? -
它们主要是分隔符并且各不相同,但我只对数字感兴趣,因为它们代表年、月等。
标签: python file directory glob