我正在使用python 2.6,我正在尝试使用来自numpy的savetxt在一个文件上写入vector。
在我在大学写的一个较旧的程序中,我需要从文件中读取数据,将最后一列从度数转换为radiants,然后将结果写入另一个文件;这就是我提出的:
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]]
...
我做错了什么?
答案 0 :(得分:1)
您的列表必须采用不同的形式(请查看括号):
par = [[1, 2, 3, 4, 5, 6]]
np.savetext(fout, par, delimiter="\t")