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

竖线分隔CSV转Xlsx后列未拆分的Python脚本修复需求

解决竖线分隔CSV转Xlsx时列未拆分的问题

问题原因

你的pd.read_csv()默认使用逗号作为分隔符,但你的CSV文件以竖线(|)分隔,导致所有内容被识别为单列。同时数据中存在双引号包裹的字段,需要配置对应的解析参数才能正确识别列。

修改后的Python脚本

先执行环境激活命令:

source /opt/infa/MDW-env/bin/activate

再运行以下Python代码:

import os
import pandas as pd

os.chdir("/opt/alb_test/alb/albt1/Source/alb/al/conversion/scripts")

# 读取竖线分隔的CSV,正确解析双引号包裹的字段
df_new = pd.read_csv(
    'sourcefile.csv',
    sep='|',          # 指定列分隔符为竖线
    quotechar='"',    # 指定字段的包裹符为双引号
    keep_default_na=False,  # 保留空列的原始空值,避免自动转为NaN
    skipinitialspace=False  # 不跳过分隔符后的空格(根据数据实际情况调整)
)

# 保存为Xlsx文件(用with语句更安全,自动处理资源释放)
with pd.ExcelWriter('sourcefile.xlsx') as GFG:
    df_new.to_excel(GFG, index=False)

关键参数说明

  • sep='|':这是解决列未拆分的核心配置,明确告知pandas使用竖线作为列的分隔符。
  • quotechar='"':让pandas正确识别双引号包裹的字段内容,避免误解析引号内的字符。
  • keep_default_na=False:防止文件开头/结尾的空列被自动填充为NaN,保持原始空值状态。

额外优化:Bash邮件脚本的问题修复

你的bash脚本中mailx重复使用了-s(主题)参数,会导致主题被覆盖,同时文件匹配格式有误,修改后如下:

#!/bin/bash
cd /opt/alb_test/alb/albt1/Source/alb/al/conversion/scripts
ls *.xlsx -1 > test.txt  # 匹配生成的xlsx格式文件
while read line
do
mailx -s "Test: Conversion Files" -a "${line}" prakash@gmail.com << EOM

Hi, Testing Conversion
EOM
done < test.txt

修改点

  1. 将ls *.xls改为ls *.xlsx,匹配你实际生成的文件格式。
  2. 合并重复的-s参数,设置唯一的邮件主题。
  3. 给${line}添加双引号,避免文件名含空格时出现错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:35:19