You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何筛选文件名含指定关键词的CSV文件并合并

实现文件名筛选后合并CSV的修正方案

核心逻辑是在原有代码基础上增加文件名关键词过滤环节,仅读入文件名包含tables的CSV文件做拼接,两种可直接运行的实现方式如下:


方式1:直接修改glob匹配规则(推荐,执行效率更高)

无需先拉取路径下所有CSV再做过滤,直接在文件匹配阶段就筛选出符合关键词规则的文件,把原代码的glob匹配规则调整为*tables*.csv即可,该模式代表匹配所有文件名任意位置包含tables、后缀为csv的文件。
修正后完整代码:

import glob
import pandas as pd
  
path = "folder_directory"
# 直接匹配文件名包含tables关键词的csv文件
files = glob.glob(path + "/*tables*.csv")

content = []
for filename in files:
    df = pd.read_csv(filename, index_col=None)
    content.append(df)
    
# 拼接时增加ignore_index=True重置行索引,避免多文件原有索引重复
data_frame = pd.concat(content, ignore_index=True)
print(data_frame)

方式2:遍历环节增加关键词判断(规则灵活性更高)

如果后续需要调整为多关键词匹配、正则匹配等复杂文件名规则,可以保留全量CSV匹配逻辑,在读入文件前增加关键词判断环节,仅对符合要求的文件做读入操作:

import glob
import os
import pandas as pd
  
path = "folder_directory"
files = glob.glob(path + "/*.csv")

content = []
target_keyword = "tables"
for filename in files:
    # 提取不含路径的纯文件名做判断,避免上级文件夹名包含tables导致误匹配
    if target_keyword in os.path.basename(filename):
        df = pd.read_csv(filename, index_col=None)
        content.append(df)
    
data_frame = pd.concat(content, ignore_index=True)
print(data_frame)

效果验证

针对给出的示例文件列表,两种方案的筛选结果完全符合预期:

  • abcd-tables.csv:包含tables关键词,会被纳入合并
  • abcd-text.csv:不含目标关键词,自动跳过
  • abcd-forms.csv:不含目标关键词,自动跳过
  • defg-tables.csv:包含tables关键词,会被纳入合并
  • defg-text.csv:不含目标关键词,自动跳过
  • defg-forms.csv:不含目标关键词,自动跳过

内容的提问来源于stack exchange,提问作者bieha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:48:31