python-2.7 - Python 2.7:读取一个 txt 文件,从右侧拆分和分组数列
问题描述
由于txt文件有一些缺陷,.txt文件需要从右边拆分。下面是文件的一部分。请注意,第一行只有 4 列,而另一行有 5 列。我想要右边第 2、3、4 列的数据
5123 - SENTRAL REIT - SENTA.KL - [$SENT]
KIPT - 5280 - KIP REAL EST - KIPRA.KL - [$KIPR]
ALIT - 5269 - AL-SALAM REAL - ALSAA.KL - [$ALSA]
KLCC - 5235SS - KLCC PROP - KLCCA.KL - [$KLCC]
IGBgggREIT - 5227 - IGB RT - IGREA.KL - [$IGRE]
SUNEIT - 5176 - SUNWAY RT - SUNWA.KL - [$SUNW]
ALA78QAR - 5116 - AL-AQAR HEA RT - ALQAA.KL - [$ALQA]
我希望将文件保存在 .csv 中,以后可以由 pandas 读取所需的输出是
Code,Company,RIC
5123,SENTRAL REIT,SENTA.KL
5280,KIP REAL EST, KIPRA.KL
5269,AL-SALAM REAL,ALSAA.KL
5235SS,KLCC PROP,KLCCA.KL
5227,IGB RT,IGREA.KL
5176,SUNWAY RT,SUNWA.KL
5116,AL-AQAR HEA RT,ALQAA.KL
我的代码如下
>>> with open('abc.txt', 'r') as reader:
>>> [x for x in reader.read().strip().split(' - ') if x]
它返回一个列表,由于列表的缺陷,我无法将其分组到右列(如果从左侧开始计算,某些行中的列不相等)
请告知如何获得所需的输出
解决方案
这应该可以解决问题:)
import pandas as pd
with open('abc.txt', 'r') as reader:
data = [line.split(' - ')[-4:-1] for line in reader.readlines()]
df = pd.DataFrame(columns=['Code', 'Company', 'RIC'], data=data)
df.to_csv('abc.csv', sep=',', index=0)
推荐阅读
- javascript - 如何在 JavaScript 中读取文件夹中的 txt 文件列表?
- java - Maven编译打包后不会将其他类编译成jar
- php - 合并具有相同值的数组
- linux - 1 线程 vs 5 线程用于分布式系统通信?
- azure - 具有特定端点 (DNS) 的 Kubernetes 服务发现
- c# - 使用 StreamReader 跳过行
- r - 确定用于生成 lm() 模型的数据集
- python - 使用 Django/Python 阅读 Shopify 商店元字段:AJAX 调用和后端视图行为之间的差异
- pdf - MVC 打印 PDF 而不在打印对话框中显示
- mongodb - MongoDB 聚合显示没有结果