使用savetxt时添加到现有内容(避免覆盖)PYTHON

时间:2017-04-24 05:13:43

标签: python arrays python-3.x numpy

我正在使用savetxt来保存名为' newresult'的numpy数组。到文件。

np.savetxt("test.csv", newresult, delimiter=",")

' newresult' numpy数组在循环内部,因此在每个循环中newresult的内容都会发生变化。我想将新内容添加到test.csv文件中。

但是在每个循环中

 np.savetxt("test.csv", newresult, delimiter=",")

正在覆盖test.csv的内容,而我想添加到现有内容。

例如,

循环1:

 newresult=
   [[ 1  2 3 ]
    [ 12  13  14]]

循环2

newresult=
      [[ 4  6 8 ]
       [ 19  14  15]]

test.csv内容是:

  1, 2 ,3
  12,13,14
  4,6,8
  19,14,15

1 个答案:

答案 0 :(得分:2)

第一点:你可以设置第一个参数,该文件句柄在循环之前用a(追加)标志打开。

第二点:savetxt以二进制模式打开文件,因此您必须添加b(二进制)标记。

import numpy as np

with open('test.csv','ab') as f:
    for i in range(5):
        newresult = np.random.rand(2, 3)
        np.savetxt(f, newresult, delimiter=",")

如果要格式化float类型数据,可以将格式字符串分配给fmt的{​​{1}}参数。例如:

savetxt

enter image description here