2017-04-24 214 views
1

我正在使用savetxt將名爲'newresult'的numpy數組保存到文件中。使用savetxt時添加到現有內容(避免覆蓋)PYTHON

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 
+0

http://stackoverflow.com/questions/27786868/python3-numpy-appending-to-a-file-using-numpy-savetxt – cel

回答

1

第一點:可以設置帶有fil的第一個參數e在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類型的數據,您可以將格式字符串分配給savetxtfmt參數。例如:

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=",", fmt='%.4f') 

enter image description here

+0

它的工作,謝謝! – ryh12