2012-11-21 120 views
2

我有一個數據文件,只是一列。我想在左側添加2列,在右側添加2列。將列添加到文本文件

我認爲,一個簡單的方法,這將使用numpy的陣列來,並在這裏做的是我的嘗試:

z = np.loadtxt('data_file.dat') 

new = np.zeros((z.shape[0],5)) 

for i in range(z.shape[0]): 
    new[i,0] = 'w040_0731.QR' 
    new[i,1] = 1666.000 
    new[i,2] = z[i] 
    new[i,3] = 0.10000 
    new[i,4] = 7 

z.close() 

但它沒有工作 - 我想是因爲一個numpy的陣列不是設計混合數字和字符串?我得到的錯誤信息:

could not convert string to float: w040_0731.QR 

可能有人請推薦最有效的方式,以2列到左邊2列添加到我有一個文本文件的吧?

回答

4

這應該這樣做,假設你的列空格分隔,但它不使用numpy

with open('data_file.dat') as in_file, open('output', 'w') as out_file: 
    for line in in_file: 
     data = float(line.strip()) 
     print >> outfile "'w040_0731.QR'", '1666.000', data, '0.10000', '7'