如何在python中将数组迭代保存到文件中?

如何在python中将数组迭代保存到文件中?,python,file,numpy,Python,File,Numpy,我想在for循环中执行如下操作: for i in range(n): x = vector() np.savetxt('t.txt', x, newline=" ") 但是我想在我的文件中将每个数组x保存为一个新行,但是上面的代码不会发生这种情况,有人能帮忙吗?谢谢 我会选择(未经测试的!): 需要做出一些决定: 在每次迭代中打开/关闭文件与保持文件处理程序打开 使用np.array\u str/np.array\u repr/np.array2string 这当然是基于这样

我想在for循环中执行如下操作:

for i in range(n):
   x = vector()
   np.savetxt('t.txt', x, newline=" ")

但是我想在我的文件中将每个数组x保存为一个新行,但是上面的代码不会发生这种情况,有人能帮忙吗?谢谢

我会选择(未经测试的!):

需要做出一些决定:

  • 在每次迭代中打开/关闭文件与保持文件处理程序打开
  • 使用np.array\u str/np.array\u repr/np.array2string
这当然是基于这样的假设,即您迫不及待地要在一次写入所有数据之前获取所有数据!(在线设置)

尝试以下操作:

with open('t.txt', 'w') as f:
    for i in range(n):
        x = vector()
        np.savetxt(f, x, newline=" ")
        f.write('\n')

也就是说,将已打开的文件句柄传递给
numpy
savetxt
函数。这样它就不会覆盖现有内容。另请参见关于
newline=“\n”
,根据默认设置是什么?…但是上面的代码不会出现这种情况“代码有什么问题?发生了什么事?瑞尔考虑接受这个答案,如果它解决了你的问题。
with open('t.txt', 'w') as f:
    for i in range(n):
        x = vector()
        np.savetxt(f, x, newline=" ")
        f.write('\n')