142

これを投稿するだけで、後で検索できるようになります。いつも困惑しているようです。

$ python3.2
Python 3.2 (r32:88445, Oct 20 2012, 14:09:50) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import curses
>>> print(curses.version)
b'2.2'
>>> print(str(curses.version))
b'2.2'
>>> print(curses.version.encode('utf-8'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'encode'
>>> print(str(curses.version).encode('utf-8'))
b"b'2.2'"

bytes質問として: Python 3 でb'プレフィックスなしでバイナリ ( ) 文字列を出力する方法は?

4

8 に答える 8

141

使用decode:

print(curses.version.decode())
# 2.2
于 2013-05-25T09:14:28.003 に答える
27

バイトがすでに適切な文字エンコーディングを使用している場合。それらを直接印刷できます:

sys.stdout.buffer.write(data)

また

nwritten = os.write(sys.stdout.fileno(), data)  # NOTE: it may write less than len(data) bytes
于 2013-05-25T10:56:52.777 に答える
0

バイトを文字列に変換するdecode()代わりに使用します。encode()

>>> import curses
>>> print(curses.version.decode())
2.2
于 2021-12-11T15:09:41.517 に答える