Python如何读取仅已知部分文件名的CSV文件
问题解决方法
根因说明
pd.read_csv()本身不支持直接传入带通配符*的路径读取文件,通配符匹配文件名的逻辑需要借助Python内置的文件处理模块实现。
方案1:使用glob模块(最简便)
glob是Python内置的专门用于文件名模式匹配的模块,原生支持通配符语法,适配你的需求的代码如下:
import glob import pandas as pd # 构造匹配规则 file_pattern = r'C:\test\AAA*.csv' # 扫描路径获取所有匹配的文件路径列表 matched_files = glob.glob(file_pattern) if matched_files: # 若确认目录下仅存在1个符合要求的文件,直接取第一个匹配结果读取 data = pd.read_csv(matched_files[0]) # 后续处理逻辑 else: print("未找到符合匹配规则的文件")
方案2:使用os模块遍历匹配
如果需要自定义更复杂的匹配规则,可以手动遍历目标文件夹下的文件做判断:
import os import pandas as pd dir_path = r'C:\test' target_file = None for filename in os.listdir(dir_path): # 自定义判断规则:以AAA开头、以.csv结尾 if filename.startswith('AAA') and filename.endswith('.csv'): target_file = os.path.join(dir_path, filename) break if target_file: data = pd.read_csv(target_file) # 后续处理逻辑 else: print("未找到符合匹配规则的文件")
注意:如果目标路径下存在多个符合AAA*.csv规则的文件,你可以根据文件修改时间、文件名后缀的日期规则等进一步筛选出需要的文件。
内容的提问来源于stack exchange,提问作者Trainee
相关产品推荐
相关产品推荐

