python - 将文本文件转换为带列的 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
解决方案
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
推荐阅读
- android - GdxPay“onPurchaseHistoryResponse 失败,responseCode -1”
- xml - 如何将“sap.suite.ui.commons.statusindicator.StatusIndicator”添加到页面?
- php - 消息:试图在 php 错误中获取非对象的属性
- .htaccess - 如果没有字符串,则重定向 url
- maven - Maven 将源文件复制到一个文件夹
- javascript - 为什么 'class' 必须是 JavaScript 中的保留关键字?
- git - 如何将文件夹放到不同的分支?
- android - Android Log.d 打印行号
- node.js - UnhandledPromiseRejectionWarning:错误:在选择器“小部件”处修剪来自:Ionic
- php - Codeigniter 计数注册访客