我遇到了在txt文件中编写结构化数组的问题。 打开输出文件( outfile )后,我使用以下numpy函数:
np.savetxt(*outfile*, ***recarray***, fmt=['%s','%-7.4f','%-7.4f','%-7.4f'])
重新排列 就像[(b'H',0.9425,0.1412,7.1414)...(b'N',1.0037,4.0524,6.8000)] ,第一个元素的类型为numpy.bytes_
,其他元素为numpy.float64
。
在文件中写入此重新排列时出现错误消息:
TypeError: must be str, not bytes
那么,将这个数组放入文件的最简单方法是什么?也许还有其他功能?
答案 0 :(得分:0)
我假设你使用的是Python 3.0。在这种情况下,您必须在'%s'
之前指定字母b,如下所示:b'%s'
在Python3中,默认字符串类型是unicode,因此您使用额外的b来标记字节字符串。
您的脚本应该是:
np.savetxt(*outfile*, ***recarray***, fmt=[b'%s','%-7.4f','%-7.4f','%-7.4f'])
打开.txt文件时,不要忘记写wb
:
file = open('workfile.txt','wb')