numpy 使用savetxt追加到文件

7ajki6be  于 2022-12-23  发布在  其他
关注(0)|答案(3)|浏览(537)

我尝试将数组B和c附加到file.txt。默认行为是覆盖,我找不到任何关于更改此操作的文档。

import numpy as np
a = np.array([1.2, 2.3, 4.5])
b = np.array([6.7, 8.9, 10.11])
c = np.array([12.13, 14.15, 16.17])

np.savetxt('file.txt', a, fmt='%1.3f', newline=", ")

谢啦,谢啦

lndjwyie

lndjwyie1#

使用带“append”模式的open(),并将流传递给savetxt方法:

with open("test.txt", "ab") as f:
    numpy.savetxt(f, a)

编辑:添加新行或其他内容:

with open("test.txt", "ab") as f:
    f.write(b"\n")
    numpy.savetxt(f, a)
cig3rfwq

cig3rfwq2#

应在追加模式下打开该文件

import numpy as np        
f=open('file.txt','a')
a = np.array([1.2, 2.3, 4.5])
b = np.array([6.7, 8.9, 10.11])
c = np.array([12.13, 14.15, 16.17])
np.savetxt(f, a, fmt='%1.3f', newline=", ")
f.write("\n")
np.savetxt(f, b, fmt='%1.3f', newline=", ")
f.write("\n")
np.savetxt(f, c, fmt='%1.3f', newline=", ")
f.write("\n")
f.close()
knsnq2tg

knsnq2tg3#

实现行和换行符的更简单的方法。

import numpy as np

a = np.array([1.2, 2.3, 4.5])
b = np.array([6.7, 8.9, 10.11])
c = np.array([12.13, 14.15, 16.17])
      
with open('file.txt','a') as f:
    np.savetxt(f, a.reshape(1, -1), fmt='%1.3f', delimiter=",")
    np.savetxt(f, b.reshape(1, -1), fmt='%1.3f', delimiter=",")
    np.savetxt(f, c.reshape(1, -1), fmt='%1.3f', delimiter=",")

file.txt的内容(假设file.txt为空或不存在)

1.200,2.300,4.500
6.700,8.900,10.110
12.130,14.150,16.170

另外,请注意,如果您不是每次都重新打开文件,np.savetxt会有效地将bc添加到现有文件中,因此您可以从一开始就使用写模式。不确定这是您想要的还是要附加到已经存在的文件中。

with open('file.txt', 'w') as f:
    np.savetxt(f, a.reshape(1, -1), fmt='%1.3f', delimiter=",")
    np.savetxt(f, b.reshape(1, -1), fmt='%1.3f', delimiter=",")
    np.savetxt(f, c.reshape(1, -1), fmt='%1.3f', delimiter=",")

(输出与上述相同,无论是否存在任何现有文件)

相关问题