我正在尝试使用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(row)+换行符))TypeError:必须是str,而不是bytes
在python2中不会发生此错误,所以我想知道问题是什么。任何人都可以帮助我吗?
答案 0 :(得分:28)
您应该通过二进制模式打开文件。
#!/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()
参考: 如何将numpy数组写入csv文件? - Stack Overflow How to write a numpy array to a csv file?