2014-02-14 29 views
0

假設我有表格列如下。現在我想提取明智的列數據。我嘗試通過創建列表提取數據。但它正確提取第一行,但從第二行向前有空間,即在CEN/4下。現在我的代碼認爲第零列有5.0001e-1形成第二行,它開始從那裏讀取。如何正確提取數據coulmn wise.output是混亂的。正確提取柱狀數據,因爲它在文件中

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 

我想柱狀的數據,因爲它是在file.How做that.I是一個bgeinner

回答

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進一步的細節

相關問題