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

如何批量删除多个TSV文件无关列并将分隔符替换为空格

修改方案

直接调整现有代码即可,两步操作就能实现你的需求:

  • 读取TSV生成DataFrame后,新增删除前两列的逻辑,pandas列索引从0开始计数,用iloc方法筛选保留第2列及之后的内容
  • 导出文件时指定分隔符为空格,替代默认的逗号,无需额外做字符替换操作

完整修改后代码

import os
import pandas as pd
import csv

path = "All_TSV_Files"
files = [file for file in os.listdir(path) if file.endswith(".tsv")]

c = 0
for file in files:
    df = pd.read_csv(os.path.join(path, file), 
                     comment='#', 
                     header=None, 
                     sep='\t',
                     engine='python',
                     error_bad_lines=False)
    # 删除前两列,保留第2列及之后的内容
    df = df.iloc[:, 2:]
    # 导出时指定空格为分隔符,关闭自动引号
    df.to_csv(os.path.join(path, f'admin{c}.txt'),
              index=False,
              header=False,
              sep=' ',
              quoting=csv.QUOTE_NONE)
    c += 1

注意事项

如果运行后输出文件为空,说明你实际需要保留的是第一列的关键词内容,把删除列的代码替换为df = df.iloc[:, [0]]即可。

已有TXT文件批量处理方案

如果你不想重新处理原始TSV,只需要修改已经生成的TXT文件,可以使用以下代码:

import os

path = "All_TSV_Files"
files = [file for file in os.listdir(path) if file.startswith("admin") and file.endswith(".txt")]

for file in files:
    file_path = os.path.join(path, file)
    with open(file_path, 'r', encoding='utf-8') as f:
        content = f.read()
    # 替换逗号为空格
    new_content = content.replace(',', ' ')
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(new_content)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:45:02