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
バイトの方法がない場合、バイトのフォーマットまたは「書き換え」を行う方法は?
別の方法は次のとおりです。
"{0}, {1}, {2}".format(1, 2, 3).encode()
IPython 1.1.0 および Python 3.2.3 でテスト済み
興味深いことに.format()
、バイト シーケンスではサポートされていないようです。あなたが実証したように。
.join()
ここで提案されているように使用できます: http://bugs.python.org/issue3982
b", ".join([b'1', b'2', b'3'])
BDFL 自身によって示されている.join()
使用に関連する速度の利点があります: http://bugs.python.org/msg180449.format()
Python 3.6+ の場合、次のきれいな構文を使用できます。
f'foo {bar}'.encode() # a byte string