如何在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")