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

使用Python批量转换TSV到CSV遇解析错误及路径保存问题

批量转换TSV到CSV的问题解决

一、解决解析报错问题

你遇到的ParserError是因为部分TSV行的字段数量和表头行不匹配,pandas默认严格按表头列数解析,所以触发报错。可以通过以下方式处理:

  • 若允许跳过格式异常的行,在read_table中添加on_bad_lines='skip'参数;
  • 若文件本身没有固定表头,加上header=None让pandas自动为列编号。

二、保存到单独文件夹

需要先创建目标文件夹(避免因文件夹不存在报错),再提取原TSV的文件名,拼接成目标CSV的路径,确保转换后的文件单独存放且不覆盖原文件。

修改后的完整代码

import pandas as pd
import glob
import os

# 定义原TSV文件夹和目标CSV文件夹路径
tsv_dir = 'C:/Users/user/Documents/Data/'
csv_dir = 'C:/Users/user/Documents/Converted_CSV/'

# 创建目标文件夹,已存在则不执行创建操作
os.makedirs(csv_dir, exist_ok=True)

# 遍历所有TSV文件
for tsv_path in glob.glob(os.path.join(tsv_dir, '*.tsv')):
    # 提取纯文件名(不含路径和后缀)
    filename = os.path.splitext(os.path.basename(tsv_path))[0]
    # 拼接目标CSV文件的完整路径
    csv_path = os.path.join(csv_dir, f'{filename}.csv')
    
    try:
        # 读取TSV文件,跳过格式异常的行;若文件无表头,添加header=None参数
        df = pd.read_table(tsv_path, sep='\t', on_bad_lines='skip')
        # 保存为CSV文件,不保留索引列
        df.to_csv(csv_path, index=False)
        print(f'转换完成:{filename}.tsv -> {filename}.csv')
    except Exception as e:
        print(f'转换{filename}.tsv失败:{str(e)}')

关键代码说明

  • os.makedirs(csv_dir, exist_ok=True):确保目标文件夹存在,无需手动提前创建;
  • os.path.splitext(os.path.basename(tsv_path))[0]:精准提取文件名,保证CSV文件和原TSV文件名一一对应;
  • 若想查看格式异常的行信息,可将on_bad_lines='skip'改为on_bad_lines='warn',控制台会输出错误行的详情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:15:37