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

如何设置工作目录并读取含5位数字变量前缀的.csv文件?

匹配任意5位数字前缀的CSV文件并读取

嘿,这个需求很实用!要自动匹配并读取以5位数字开头、后缀为_output.csv的文件,你可以结合Python的glob模块(用于文件路径匹配)和正则表达式来实现精准筛选。下面是两种靠谱的实现方式:

方法一:快速筛选(适合简单场景)

先获取所有*_output.csv格式的文件,再筛选出前缀是5位数字的目标文件:

import pandas as pd
import glob

# 获取当前目录下所有以_output.csv结尾的文件
file_candidates = glob.glob("*_output.csv")

# 找出第一个前缀为5位数字的文件(用next避免遍历全部)
target_file = next((f for f in file_candidates if f[:5].isdigit()), None)

if target_file:
    d = pd.read_csv(target_file)
    print(f"成功读取文件: {target_file}")
else:
    print("未找到符合要求的5位数字前缀_output.csv文件")

如果存在多个符合条件的文件,你可以把next()改成循环遍历,把所有文件的数据合并起来。

方法二:正则精准匹配(推荐)

如果需要严格避免误判(比如排除像abcde_output.csv这种非数字前缀的文件),用正则表达式来精确校验文件名会更稳妥:

import pandas as pd
import glob
import re

# 定义匹配规则:必须以5位数字开头,紧跟_output.csv结尾
pattern = re.compile(r"^\d{5}_output\.csv$")

# 获取当前目录下所有CSV文件并筛选
file_candidates = glob.glob("*.csv")
target_files = [f for f in file_candidates if pattern.match(f)]

if target_files:
    # 读取第一个匹配的文件(多文件可循环处理)
    d = pd.read_csv(target_files[0])
    print(f"成功读取文件: {target_files[0]}")
else:
    print("没有找到符合规则的文件")

补充小提示

  • 如果文件不在当前工作目录,记得给glob.glob加上完整路径,比如glob.glob("/your/file/path/*_output.csv")
  • 若要合并多个匹配文件的数据,可以用pd.concat():
    dfs = [pd.read_csv(f) for f in target_files]
    combined_df = pd.concat(dfs, ignore_index=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:11:38