import pandas as pd
df=pd.read_table('d:/data.txt',sep=":",encoding='gbk',header=None)
df.columns=['a','b']
df['b']=df.b.map(lambda x:x[1:-1].replace("'",'').replace(' ',''))
df1=pd.concat([df.a,df.b.str.split(',',expand=True)],axis=1)
df1=df1.set_index('a')
df1=df1.stack().reset_index().drop('level_1',axis=1)
df1.to_excel('d:/out_data.xlsx',header=None,index=None)
读取txt很简单啊,代码如下
with open("test.txt", 'r') as f:
L= f.readlines()
L = [ i.rstrip().split(':') for i in L]
print(L)
这里的L就是你需要的列表,然后你用csv模块讲这个列表写入到csv文件就可以了。
可以按行读取,每读取一行append到list里面。
右侧是Excel或csv的文件。先读取信息,转化成数组(可以先冒号切割,后面是数组),然后按右图规则输出(csv是英文逗号作为列分隔符,Excel是tab)
切记左边一行,按数组里个数在右图是多行
import numpy as np
import pandas as pd
#首先获得文件中的数据,把他变成列表一样的形式,这个列表形式是2列,3行
lis = []
with open('text.txt','r',encoding='gbk') as fr :
for line in fr:
line_list = line.strip().split(":")
#这里获得每一列的数据,再把他整合成总的二维数据
lis.append(line_list)
a = np.array(lis)
'''
[['label_0' "['98全国图书情报学研究生学术研讨会在京举行', '《河北经济波动与产业结构优化》评介']"]
['label_1' "['90年代以来我国工业发展和结构调整的新特点', 'ARCH预警系统的研究', '“李约瑟难题”求解述评']"]
['label_2' "['《世纪之交的工业结构升级》评介', '一种基于改进的Akaike信息准则的相关关系检测的新方法']"]]
'''
#然后就是生成列表了
df = pd.DataFrame(a)
'''
0 1
0 label_0 ['98全国图书情报学研究生学术研讨会在京举行', '《河北经济波动与产业结构优化》评介']
1 label_1 ['90年代以来我国工业发展和结构调整的新特点', 'ARCH预警系统的研究', '“李约瑟...
2 label_2 ['《世纪之交的工业结构升级》评介', '一种基于改进的Akaike信息准则的相关关系检测的...
'''
df.to_excel('a.xlsx',header=None,index=None)