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

Python实现文件夹中文本文件批量转换为CSV格式

批量将文件夹中TXT文件转换为CSV的解决方案

原代码问题分析

你的代码存在几个关键错误,直接导致了EmptyDataError和逻辑失效:

  • 读取文件时误用字符串字面量'filename'而非变量filename,pandas会尝试读取名为"filename"的文件而非目标TXT文件
  • 读取后未将数据存入DataFrame变量,直接调用filename.to_csv完全错误——filename是路径字符串,并没有to_csv方法
  • 未生成新的CSV文件名,既会引发语法错误,还可能误覆盖原文件

修正后的批量转换代码

import os
import pandas as pd

files_dir = r'C:\Users\rajat.kapoor\Desktop\Scrub_Data\RPT_AR'

# 遍历文件夹内所有文件
for file_name in os.listdir(files_dir):
    # 仅处理以RPT_AR开头的TXT文件
    if file_name.startswith('RPT_AR') and file_name.endswith('.txt'):
        file_path = os.path.join(files_dir, file_name)
        try:
            # 读取TXT文件,指定分隔符为|
            df = pd.read_csv(file_path, sep='|')
            # 生成对应CSV文件名(替换后缀)
            csv_file_path = os.path.splitext(file_path)[0] + '.csv'
            # 保存为CSV,按需设置index=False去除索引列
            df.to_csv(csv_file_path, index=False)
            print(f"转换完成:{file_name} → {os.path.basename(csv_file_path)}")
        except Exception as e:
            print(f"{file_name}转换失败:{str(e)}")

核心说明

  • 用startswith+endswith直接筛选目标文件,比fnmatch更简洁高效
  • 将读取的文本数据存入DataFrame对象后,再调用to_csv生成CSV文件
  • 通过os.path.splitext替换文件后缀,确保每个TXT生成同名CSV,不会覆盖原有RPT_AR1.csv
  • 增加异常捕获,方便排查单个文件的格式或空文件问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:47:12