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

使用os.walk批量转TXT为CSV并按文件夹合并,代码无输出求排查

解决按州文件夹合并TXT到CSV的问题

让我来帮你排查代码里的问题,顺便给出能实现需求的修正版本~

你的代码存在这些核心问题:

  • 路径处理错误:你直接用filename打开文件,但os.walk返回的filename只是单纯的文件名,不是完整路径,必须用os.path.join(root, filename)才能定位到文件。另外'*.txt'、'*.csv'是通配符,不是合法的文件名,Python根本无法识别。
  • 输出逻辑完全偏离需求:你每次循环都试图写入一个叫'*.csv'的无效文件,而且会覆盖之前的内容,完全没做到按州文件夹合并的要求。
  • 内容写入错误:out_csv.writerows(filename)是把文件名的每个字符当成一行写入CSV,而不是读取TXT文件里的内容写入,这完全搞错了写入对象。
  • 文件模式不兼容:在Python3中使用csv模块时,建议用文本模式('r'/'w')而非二进制模式('rb'/'wb'),同时指定编码能避免乱码问题。

修正后的代码(实现按州合并TXT为CSV)

import os
import csv

# 替换成你的States文件夹实际路径,比如 './States' 或者绝对路径
base_path = '/path/to/your/States'

# 遍历States下的每个州子文件夹
for state_dir in os.listdir(base_path):
    state_dir_full_path = os.path.join(base_path, state_dir)
    # 跳过非文件夹的项目
    if not os.path.isdir(state_dir_full_path):
        continue
    
    # 生成对应州的CSV文件名,比如 arizona_files.csv
    output_csv_filename = f"{state_dir.lower()}_files.csv"
    output_csv_full_path = os.path.join(base_path, output_csv_filename)
    
    # 打开输出CSV文件,准备写入
    with open(output_csv_full_path, 'w', newline='', encoding='utf-8') as csv_output_file:
        csv_writer = csv.writer(csv_output_file, delimiter='\t')  # 保持和你原代码一致的制表符分隔
        
        # 遍历当前州文件夹下的所有TXT文件
        for txt_filename in os.listdir(state_dir_full_path):
            if txt_filename.endswith('.txt'):
                txt_file_full_path = os.path.join(state_dir_full_path, txt_filename)
                # 读取TXT内容并写入CSV
                with open(txt_file_full_path, 'r', encoding='utf-8') as txt_input_file:
                    csv_reader = csv.reader(txt_input_file, delimiter='\t')
                    csv_writer.writerows(csv_reader)
    
    print(f"✅ 已完成合并:{output_csv_full_path}")

代码关键说明:

  1. 精准路径定位:全程用os.path.join拼接完整路径,确保无论你的文件夹在哪里都能正确找到文件。
  2. 按州合并逻辑:先遍历每个州的子文件夹,为每个州单独创建一个CSV文件,再把该州下所有TXT的内容逐行追加进去。
  3. 安全的文件操作:使用with语句自动管理文件的打开/关闭,避免忘记关闭文件导致的资源泄漏。
  4. 编码与格式优化:指定encoding='utf-8'避免特殊字符乱码,newline=''是csv模块的推荐写法,防止生成的CSV出现多余空行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:04:18