2014-03-04 46 views
0

我使用python 2.6,我試圖寫與numpy的savetxt文件載體。問題numpy.savetxt

在一箇舊的程序中,我在大學裏寫的,我需要從文件中讀取數據,從度轉換最後一列輻射點,並寫在另一個文件中的結果;這是我想出來的:

import math 
import numpy as np 

vec=[] 
with open("In.txt") as f: 
    for line in f: 
     a = float(line.split()[0]) 
     b = float(line.split()[1]) 
     c = float(line.split()[2]) 
     rad = math.pi/2.-(float(line.split()[3])*math.pi/180.) 
     vec.append((a,b,c,rad)) 
np.savetxt("Out.txt",vec) 

一切都如預期:在Out.txt中,我的數據正確地顯示爲表格。

現在我試圖做同樣的事情:我從文件中讀取數據,執行一些操作,並在文件中寫入結果:

fout=open("Out.txt",'a') 

for n in range(nsteps) 
    with open("In.txt") as fin: 
    for line in fin: 
     #long operations: at the end I have a vector par with 4 elements 
     #I want to write this vector as a new line in my output file 
     np.savetxt(fout,par) 
fout.close() 

的問題是,在輸出我只有一個柱:

par[0] 
par[1] 
par[2] 
par[3] 
par[0] 
par[1] 
... 

如果我在每一個步驟中的終端上寫par我已經它正確顯示爲:

[par[0],par[1],par[2],par[3]] 
... 

我究竟做錯了什麼?

回答

1

你的名單必須以不同的形式(看括號中):

par = [[1, 2, 3, 4, 5, 6]] 
np.savetext(fout, par, delimiter="\t") 
+0

了這幫助你嗎?然後請將其標記爲每個人都可以看到問題得到解答的正確答案。 – theaembee