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

如何用Python将竖线分隔文本转为列独立CSV?Python2.7实现求助

解决Python 2.7下竖线分隔文本转CSV的问题

嘿,我看到你遇到的问题了——你的代码没达到预期效果,核心原因是没有告诉pandas要用竖线作为分隔符!pd.read_csv()默认是用逗号分隔内容的,所以你的竖线分隔文本会被当成一整列读入,自然输出的CSV也不对。下面给你适配Python 2.7的解决方案:

用Pandas修正的代码

直接修改read_csv的参数,指定分隔符为竖线,同时调整导出参数避免多余的索引列:

import pandas as pd
import easygui
import os

def convert():
    file = easygui.fileopenbox()
    # 指定竖线作为分隔符,如果竖线后有空格,加上skipinitialspace=True去除空格
    data = pd.read_csv(file, header=None, sep='|', skipinitialspace=True)
    
    # 确保输出目录存在,避免路径错误
    output_dir = r'C:\Users\micha\Desktop\Python Tools'
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 导出为CSV,去掉索引列,保持无表头(和原文件一致)
    data.to_csv(os.path.join(output_dir, 'output.csv'), index=False, header=False)

# 直接调用函数,不需要print(函数没有返回值)
convert()

原生Python替代方案(不依赖Pandas)

如果你的Python 2.7环境安装Pandas有麻烦,也可以用内置的csv模块来处理,更轻量:

import easygui
import csv
import os

def convert():
    input_file = easygui.fileopenbox()
    output_dir = r'C:\Users\micha\Desktop\Python Tools'
    
    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    output_path = os.path.join(output_dir, 'output.csv')
    
    # 读取竖线分隔的文件,写入标准CSV
    with open(input_file, 'r') as infile, open(output_path, 'w') as outfile:
        # 指定竖线为输入分隔符
        reader = csv.reader(infile, delimiter='|')
        writer = csv.writer(outfile)
        
        for row in reader:
            # 去除每个字段前后的空格(如果有需要的话)
            cleaned_row = [item.strip() for item in row]
            writer.writerow(cleaned_row)

convert()

额外注意事项

  1. 编码问题:如果你的输入文件包含中文或特殊字符,Python 2.7的open默认编码可能不兼容,这时候可以改用codecs模块来读取:
    import codecs
    # 替换原有的open语句
    with codecs.open(input_file, 'r', 'utf-8') as infile:
    
  2. 表头处理:如果你的原文件有表头,记得把header=None改成header=0(Pandas方案),或者在原生方案中保留第一行作为表头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 18:02:42