假设我有如下表格列。现在我想提取列方式数据。我尝试通过创建列表来提取数据。但是它正确地提取第一行但是从第二行开始有空间,即在CEN /下4.现在我的代码认为第0行有5.0001e-1形成第二行,它从那里开始读取。如何正确地提取数据。明智的输出是打乱的。
0 1 25 CEN/4 -5.000000E-01 -3.607026E+04 -5.747796E+03 -8.912796E+02 -88.3178
5.000000E-01 3.607026E+04 5.747796E+03 8.912796E+02 1.6822
27 -5.000000E-01 -3.641444E+04 -5.783247E+03 -8.912796E+02 -88.3347
5.000000E-01 3.641444E+04 5.783247E+03 8.912796E+02 1.6653
28 -5.000000E-01 -3.641444E+04 -5.712346E+03 -8.912796E+02 -88.3386
5.000000E-01 3.641444E+04 5.712346E+03 8.912796E+02
my code is :
f1=open('newdata1.txt','w')
L = []
for index, line in enumerate(open('Trial_1.txt','r')):
#print index
if index < 0: #skip first 5 lines
continue
else:
line =line.split()
L.append('%s\t%s\t %s\n' %(line[0], line[1],line[2]))
f1.writelines(L)
f1.close()
my output looks like this:
0 1 CEN/4 -5.000000E-01 -5.120107E+04
5.000000E-01 5.120107E+04 1.028093E+04 5.979930E+03 8.1461
我想要文件中的柱状数据。如何做到这一点。我是一个bgeinner
答案 0 :(得分:0)
很难从输入数据显示在你的问题中的方式来判断,但我猜你的文件是使用制表符分隔列,无论如何,考虑使用python csv模块和相关的分隔符,如:
import csv
with open('input.csv') as f_in, open('newdata1', 'w') as f_out:
reader = csv.reader(f_in, delimiter='\t')
writer = csv.writer(f_out, delimiter='\t')
for row in reader:
writer.writerow(row)
有关详细信息,请参阅python csv module documentation