Python如何按指定日期范围过滤目录下日期命名的parquet文件
按日期范围筛选指定格式文件的Python实现
需求背景
需要遍历指定目录下命名规则为file_YYYY-MM-DD.parquet的文件,筛选出落在指定日期间隔内的文件并返回路径列表。
示例目录结构如下:
I:/directory ├── file_2019-01-01.parquet ├── file_2019-01-02.parquet ├── file_2019-01-03.parquet ├── file_2019-01-04.parquet └── ...
完整实现代码
import os import pandas as pd def pull_files(start, stop, dir_path="I:/directory"): # 生成目标日期序列 my_days = pd.date_range(start=start, end=stop) # 转成文件名对应的日期字符串格式 target_date_strs = [dt.strftime("%Y-%m-%d") for dt in my_days] matched_paths = [] # 遍历目录下所有文件 for filename in os.listdir(dir_path): # 仅匹配符合命名规则的文件 if filename.startswith("file_") and filename.endswith(".parquet"): # 提取文件名中的日期部分 file_date = filename[5:-8] if file_date in target_date_strs: # 拼接完整路径加入结果列表 matched_paths.append(os.path.join(dir_path, filename)) return matched_paths # 调用示例 result = pull_files('2019-01-02','2019-01-04') print(result)
逻辑说明
- 先根据输入的起止日期生成所有需要匹配的日期字符串,和文件名中的日期格式完全对齐
- 遍历目录时先过滤文件名前缀和后缀,避免无关文件干扰匹配
- 提取文件名中的日期部分和目标日期列表比对,匹配成功则返回完整路径
- 调用示例默认返回
2019-01-02、2019-01-03、2019-01-04三个文件的完整路径
内容的提问来源于stack exchange,提问作者LoF10
相关产品推荐
相关产品推荐

