正确提取柱状数据,就像在文件中一样

时间:2014-02-14 18:21:33

标签: python-2.7

假设我有如下表格列。现在我想提取列方式数据。我尝试通过创建列表来提取数据。但是它正确地提取第一行但是从第二行开始有空间,即在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

1 个答案:

答案 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