我需要将文本,然后二进制数据写入文件。例如,我想用内容编写文件:
BESTFORMAT
NUMLINES 42
FIELDS FOO BAR SPAM
DATATYPES INT32 FLOAT64 FLOAT64
FILETYPE BINARY
???d?'Ӈ T???'Ѥ??X??\??
?? R??&??X??\???????
??zR??X??\????????
...
但是,在Python(3.5)中,您无法以可以编写ASCII数据,然后编写二进制数据的方式打开文件。
我试过了:
将我的二进制数据转换为文本(没有好处,因为它输出b'5 42.7 0.8'
将我的文本数据编码为二进制文件并将文件打开为二进制文件(不好,因为我有一个二进制文件,这不是我想要的)
答案 0 :(得分:0)
好的,事实证明我一直都有答案,我只是不知道。
您只需以文本模式打开文件:
with open("file.best", "w") as fl:
fl.write("BESTFORMAT\n\
NUMLINES 42\n\
FIELDS FOO BAR SPAM\n\
DATATYPES INT32 FLOAT64 FLOAT64\n\
FILETYPE BINARY\n\
")
然后以附加方式打开文件,二进制模式:
with open("file.best", "ab") as fl:
fl.write(nparr.tostring())
引起我兴趣的是我的文本编辑器以十六进制模式打开文件,所以我只是一堆十六进制代码。当我用UTF-8编码打开文件时,我看到了ASCII标题和它下面的二进制数据。