首页 > 解决方案 > 将文本文件转换为带列的 CSV

问题描述

我正在尝试将文本文件转换为 CSV 以简化其他应用程序的工作流程。我遇到的问题是,提供的文本文件在文件中有过多的空间,并且在使用 pandas 导出到 CSV 时会读入一列。我尝试将列名指定为参数,但它不起作用。

文本文件是这样的,

85350   5211 APPLE LN               O                                                                                                                                                                     
85805   201 ORANGE ST               I                                                                                                                                                                     
84412   1313 BANANA RD              I 

它像这样导出为 CSV,

85350 5211 APPLE LN O,
85805 201 ORANGE ST I,
84412 1313 BANANA RD I

我希望导出的 CSV 具有列并且看起来与此类似,列是 Number Address In_Out,

Number,Address,In_Out
85350,5211 APPLE LN,O
85805,201 ORANGE ST,I
84412,1313 BANANA RD,I

标签: pythonpandascsvexport-to-csvtxt

解决方案


pandas有一种读取固定宽度文本文件的方法。如果默认推断列不正确,还有其他参数可以指示列的宽度,但在这种情况下它可以工作:

import pandas as pd

df = pd.read_fwf('input.txt', header=None)
df.to_csv('output.csv', index=False, header=['Number','Address','In_Out'])

输出.csv:

Number,Address,In_Out
85350,5211 APPLE LN,O
85805,201 ORANGE ST,I
84412,1313 BANANA RD,I

推荐阅读