如何在Python 3中的标准输出写入二进制数据?

在Python 2.x中,我可以这样做:

import sys, array a = array.array('B', range(100)) a.tofile(sys.stdout) 

但是,现在我得到一个TypeError: can't write bytes to text stream 。 我应该使用一些秘密编码吗?

更好的方法:

 import sys sys.stdout.buffer.write(b"some binary data") 
 import os os.write(1, a.tostring()) 

或者, os.write(sys.stdout.fileno(), …)如果这比你更可读。

如果你想在python3中指定一个编码,你仍然可以使用如下所示的bytes命令:

 import os os.write(1,bytes('Your string to Stdout','UTF-8')) 

其中1是stdout的相应通常编号 – > sys.stdout.fileno()

否则,如果你不关心编码只是使用:

 import sys sys.stdout.write("Your string to Stdout\n") 

如果你想使用没有编码的os.write,那么尝试使用下面的代码:

 import os os.write(1,b"Your string to Stdout\n")