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

如何对多个文件批量运行脚本 从文件名dataframe读取并处理对应文件

你可以通过遍历df_file的文件名列,逐次读取对应文件内容即可,操作如下:

首先做前置校验:os.listdir会返回当前路径下的所有文件+子文件夹名称,建议先过滤出你要处理的目标格式文件(比如csv、xlsx等),避免后续读取报错。你可以直接复用下方代码,把你已经调试完成的列替换逻辑放到指定位置即可:

import os
import pandas as pd

# 这里放你已经调试完成的替换指定列的逻辑,入参为单个文件的内容dataframe,返回处理后的df
def replace_target_col(df):
    # 粘贴你已有的处理代码
    return df

方式1:直接遍历文件名列(代码更简洁,适合不需要记录处理状态的场景)

# 按实际处理的文件格式修改后缀,比如xlsx就改成'.xlsx'
target_suffix = '.csv'
# 如果需要合并所有处理后的文件内容,可以用这个列表存结果
processed_dfs = []

for filename in df_file['Filename']:
    # 拼接文件的完整绝对路径,避免相对路径读取报错
    file_path = os.path.join(os.getcwd(), filename)
    # 校验是文件且后缀符合要求
    if os.path.isfile(file_path) and filename.endswith(target_suffix):
        # 读取文件内容为dataframe,xlsx格式就换成pd.read_excel(file_path)
        df_content = pd.read_csv(file_path)
        # 调用你已经写好的处理逻辑
        df_processed = replace_target_col(df_content)
        # 处理后可以选择保存到新文件,避免覆盖原文件
        # df_processed.to_csv(f"processed_{filename}", index=False)
        processed_dfs.append(df_processed)

# 如需合并所有处理后的文件内容,直接拼接即可
total_df = pd.concat(processed_dfs, ignore_index=True)

方式2:按行遍历(适合需要记录每个文件处理状态的场景)

如果需要回写处理状态到原文件名表,方便后续排查失败文件,可以用iterrows遍历每行:

# 给原文件名表加处理状态、错误信息字段
df_file['is_processed'] = False
df_file['error_msg'] = ''

for idx, row in df_file.iterrows():
    filename = row['Filename']
    file_path = os.path.join(os.getcwd(), filename)
    try:
        if os.path.isfile(file_path) and filename.endswith('.csv'):
            df_content = pd.read_csv(file_path)
            df_processed = replace_target_col(df_content)
            df_processed.to_csv(f"processed_{filename}", index=False)
            # 标记处理成功
            df_file.loc[idx, 'is_processed'] = True
    except Exception as e:
        # 捕获异常记录错误原因
        df_file.loc[idx, 'error_msg'] = str(e)

# 最后可以保存处理日志,方便核对
df_file.to_csv("process_log.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:36:06