Python 2.7 Python2.7:读取一个txt文件,从右边拆分和分组几列

Python 2.7 Python2.7:读取一个txt文件,从右边拆分和分组几列,python-2.7,txt,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 -

由于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格式保存,以后可以被熊猫读取 所需输出为

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]
它返回一个列表,由于列表的缺陷,我无法将列表分组到右列(如果从左数,则某些行中的列不相等)

请告知如何获得所需的输出

这应该可以做到:)


谢谢当
df.to_csv('abc.csv',sep=',index=0)
时,它返回
TypeError:“分隔符”必须是字符串,而不是unicode
。我尝试使用
encoding='utf-8'
,但仍然是相同的错误。你能这样保存它吗<代码>df.to_csv('abc.csv')
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)