Python 3.x python3numpy:使用numpysavetxt追加到文件

Python 3.x python3numpy:使用numpysavetxt追加到文件,python-3.x,numpy,save,append,Python 3.x,Numpy,Save,Append,我试图使用numpy的savetxt函数将数据附加到文件中。下面是最低限度的工作示例 #!/usr/bin/env python3 import numpy as np f=open('asd.dat','a') for iind in range(4): a=np.random.rand(10,10) np.savetxt(f,a) f.close() 我得到的错误与错误类型有关 文件“/usr/lib/python3/dist-packages/numpy/lib/npyi

我试图使用numpy的savetxt函数将数据附加到文件中。下面是最低限度的工作示例

#!/usr/bin/env python3
import numpy as np
f=open('asd.dat','a')
for iind in range(4):
    a=np.random.rand(10,10)
    np.savetxt(f,a)
f.close()
我得到的错误与错误类型有关

文件“/usr/lib/python3/dist-packages/numpy/lib/npyio.py”,第1073行, 在savetxt中 fh.write(asbytes(格式%tuple(行)+换行符))类型错误:必须是str,而不是bytes


这个错误在python2中没有发生,所以我想知道可能是什么问题。有人能帮我吗?

你应该用二进制模式打开文件

#!/usr/bin/env python3
import numpy as np        
f=open('asd.dat','ab')
for iind in range(4):
    a=np.random.rand(10,10)
    np.savetxt(f,a)
f.close()
参考:
python-如何将numpy数组写入csv文件堆栈溢出

您必须以二进制而不是文本模式打开文件:
f=open('asd.dat','ba')
。还考虑使用<>代码> 语句,以确保文件句柄在发生错误时正确关闭。可能的复制:.CEL解决了这个问题,感谢您为这个“BA”选择了很长时间。谢谢。在我的机器上,“b”选项与np.savetxt不兼容。有人能证实吗?@HyunjunKim-My-python(Ubuntu 16.04上的python-3.5,numpy-1.13.3)的工作效率远远高于代码。如果您尝试字符串,请附加数据类型(
np.savetxt(f,[“AAA”],“%s”)
)@user4352571我认为“b”选项用于以人类无法读取的格式写入数据。但是如果没有“b”选项,上面的代码就不能工作。对不起,我误会了。