如何使用通配符读取每日文件名含可变数字的CSV文件?
解决方法
pd.read_csv本身不支持通配符匹配,你需要先用glob模块找到符合规则的具体文件路径,再读取。具体步骤如下:
- 导入必要模块
import glob import pandas as pd
- 构建文件匹配模式
根据你的需求,_08后有9位可变数字,后缀固定,可选择两种匹配方式:
- 精确匹配9位数字:用9个
?(每个?匹配单个字符)
file_pattern = r'C:\siglocal\pairoffs\logs_20220804_08?????????_capped_delta_for_singlestockdelta.csv'
- 简化匹配:用
*匹配_08到固定后缀之间的所有字符(适合目录下只有一个符合前缀和后缀的文件的场景)
file_pattern = r'C:\siglocal\pairoffs\logs_20220804_08*_capped_delta_for_singlestockdelta.csv'
- 获取匹配的文件路径并读取
# 获取所有符合模式的文件路径 matching_files = glob.glob(file_pattern) # 确保找到文件(避免报错) if matching_files: # 取第一个匹配的文件(若每日生成的文件唯一,直接用这个即可) df = pd.read_csv(matching_files[0]) else: print("未找到符合条件的CSV文件")
说明:如果目录下存在多个匹配文件,可额外添加按文件修改时间排序的逻辑,取最新生成的文件。
内容的提问来源于stack exchange,提问作者paddyusa
相关产品推荐
相关产品推荐

