Python中如何将竖线分隔的TXT数据拆分写入CSV不同单元格
修正后的代码及修改说明
原代码问题梳理
- 导入模块大小写错误:Python内置csv模块名是小写,
import CSV会触发导入报错 - 全量拼接行内容错误:将所有行拼接为一个字符串后写入,会把整个文件内容塞进同一个CSV单元格
- 直接替换分隔符逻辑错误:金额字段本身包含逗号,直接把|替换为逗号会导致字段错位拆分
- 未逐行拆分字段写入:没有按行拆分字段后调用csv writer写入,格式完全不符合要求
修正后的可运行代码
import csv # 定义输出CSV文件 with open('new11.csv', 'w', encoding='utf-8', newline='') as csv_f: writer = csv.writer(csv_f) # 写入自定义表头 header = ['Fund Name','Category','Inception Date',"July 2021(Rupees in '000)"] writer.writerow(header) # 读取TXT文件逐行处理 with open('combined_vps_data.txt', encoding='utf-8') as txt_f: # 跳过原TXT自带的表头,避免重复写入,不需要跳可以删除这行 next(txt_f) for line in txt_f: # 去除每行首尾的换行、空白字符 line = line.strip() # 跳过空行 if not line: continue # 按|分割得到4个字段 fields = line.split('|') # 写入CSV,csv模块会自动转义字段内的逗号,不会出现错位 writer.writerow(fields)
效果说明
运行后生成的CSV每个字段对应单独单元格,金额内自带的逗号会被csv模块自动加引号包裹,不会出现拆分错位的问题,空字段也会保留对应的空单元格,完全符合4列的格式要求。
内容的提问来源于stack exchange,提问作者Adeel
相关产品推荐
相关产品推荐

