如何用Python读取含route关键字的每日名称变化CSV文件?
动态读取含指定关键字的CSV文件
可以通过文件匹配的方式自动定位目标文件,无需手动修改脚本里的文件名。以下是几种实用的实现方式(以Python为例):
方法1:使用glob模块(最简洁)
glob模块支持通配符匹配,能直接筛选包含route关键字的CSV文件:
import glob import pandas as pd # 匹配当前目录下所有含'route'的csv文件 matched_files = glob.glob('*route*.csv') # 假设目录中只有一个符合条件的文件,直接读取 if matched_files: df = pd.read_csv(matched_files[0]) else: print("未找到包含'route'的CSV文件")
方法2:处理多匹配文件(取最新修改的文件)
如果目录里存在多个含route的CSV文件,可按文件修改时间排序,读取最新的那个:
import glob import os import pandas as pd matched_files = glob.glob('*route*.csv') if matched_files: # 按文件最后修改时间排序,取最新文件 latest_file = max(matched_files, key=lambda x: os.path.getmtime(x)) df = pd.read_csv(latest_file) print(f"已读取最新文件:{latest_file}") else: print("未找到包含'route'的CSV文件")
方法3:使用os模块遍历目录(更灵活)
通过遍历目录下的所有文件,手动筛选符合条件的目标文件:
import os import pandas as pd # 目标文件所在目录,可替换为实际路径(如'/data/csv_files/') target_dir = './' for filename in os.listdir(target_dir): # 筛选含'route'且后缀为.csv的文件 if 'route' in filename and filename.endswith('.csv'): file_path = os.path.join(target_dir, filename) df = pd.read_csv(file_path) print(f"已读取文件:{filename}") break # 找到第一个匹配文件后停止遍历 else: print("未找到包含'route'的CSV文件")
注意事项
- 确保目标目录中符合条件的文件唯一,或通过时间排序等规则明确读取逻辑,避免因多文件匹配导致的错误。
- 如果文件存放在子目录中,可使用
glob.glob('**/*route*.csv', recursive=True)递归查找所有子目录中的文件(Python 3.5+支持)。
内容的提问来源于stack exchange,提问作者Rfl
相关产品推荐
相关产品推荐

