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

使用Python批量转换5个CSV为TSV仅生成1个文件,求解决方法

问题分析与解决

你的代码里有两个核心问题,导致只生成了1个TSV文件:

问题1:提前终止程序的exit()语句

循环内部的exit()会在处理完第一个CSV文件后直接结束整个程序,后面的文件完全没机会被处理,必须删掉这个语句。

问题2:固定的输出文件名导致覆盖

你每次都写入同一个Exercise1.tsv文件,新的转换内容会直接覆盖之前的结果。正确的做法是根据原CSV文件的名称,生成对应的TSV文件(比如test.csv对应test.tsv)。


修改后的完整代码:

import csv
import sys
import os
import pathlib

print("Exercise1.csv", sys.argv[0])
dirname = pathlib.Path('/Users/Amber/Documents')

# 遍历指定目录下的所有CSV文件
for file in dirname.rglob('*.csv'):
    # 生成对应的TSV文件名:替换后缀为.tsv
    tsv_filename = file.stem + '.tsv'
    # 让TSV文件和原CSV保存在同一目录
    tsv_file_path = file.parent / tsv_filename
    
    with open(file, 'r') as csvin, open(tsv_file_path, 'w') as tsvout:
        csv_reader = csv.reader(csvin)
        tsv_writer = csv.writer(tsvout, delimiter='\t')
        
        for row in csv_reader:
            print(row)
            tsv_writer.writerow(row)

额外说明:

  • 我把遍历路径改成了你定义的dirname(/Users/Amber/Documents),这样更符合你原本想要处理指定目录下文件的意图,之前的pathlib.Path().rglob()是遍历当前工作目录,可能不是你需要的。
  • 生成的TSV文件会和原CSV文件保存在同一个目录下,文件名保持一致仅后缀改为.tsv,方便你对应查找转换后的文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:12:44