在Python 3,一个可以格式化的字符串,如:
"{0}, {1}, {2}".format(1, 2, 3)
但如何格式化字节?
b"{0}, {1}, {2}".format(1, 2, 3)
引发AttributeError: 'bytes' object has no attribute 'format'
。
如果没有format
为字节的方法,怎么办格式或字节的“重写”?
在Python 3,一个可以格式化的字符串,如:
"{0}, {1}, {2}".format(1, 2, 3)
但如何格式化字节?
b"{0}, {1}, {2}".format(1, 2, 3)
引发AttributeError: 'bytes' object has no attribute 'format'
。
如果没有format
为字节的方法,怎么办格式或字节的“重写”?
和3.5 %
格式化会为工作bytes
,太!
https://mail.python.org/pipermail/python-dev/2014-March/133621.html
另一种方法是:
"{0}, {1}, {2}".format(1, 2, 3).encode()
测试在IPython的1.1.0和3.2.3的Python
有趣的是.format()
不出现对字节序列进行支撑; 因为你已经证明。
你可以使用.join()
如下建议: http://bugs.python.org/issue3982
b", ".join([b'1', b'2', b'3'])
有相关联的速度优势.join()
比使用.format()
由BDFL自己所示: http://bugs.python.org/msg180449
我发现了一个工作在Python 3.6.2最佳%,它应该工作既为B“”和“”:
print(b"Some stuff %b. Some other stuff" % my_byte_or_unicode_string)