반응형
Python 3에서 바이트에 대한 b' 접두사 없이 인쇄
인쇄 방법bytes
를 제외한 문자열b'
Python 3의 접두사?
>>> print(b'hello')
b'hello'
사용하다decode
:
>>> print(b'hello'.decode())
hello
바이트가 이미 적절한 문자 인코딩을 사용하는 경우 직접 인쇄할 수 있습니다.
sys.stdout.buffer.write(data)
또는
nwritten = os.write(sys.stdout.fileno(), data) # NOTE: it may write less than len(data) bytes
데이터가 UTF-8 호환 형식이면 바이트를 문자열로 변환할 수 있습니다.
>>> print(str(b"hello", "utf-8"))
hello
선택적으로 데이터가 UTF-8과 호환되지 않는 경우(예: 데이터가 원시 바이트) 16진수로 먼저 변환합니다.
>>> from binascii import hexlify
>>> print(hexlify(b"\x13\x37"))
b'1337'
>>> print(str(hexlify(b"\x13\x37"), "utf-8"))
1337
>>> from codecs import encode # alternative
>>> print(str(encode(b"\x13\x37", "hex"), "utf-8"))
1337
의 출처에 따르면,b''
메소드에 구워집니다.
한 가지 해결 방법은 수동으로 절단하는 것입니다.b''
결과로부터repr()
:
>>> x = b'\x01\x02\x03\x04'
>>> print(repr(x))
b'\x01\x02\x03\x04'
>>> print(repr(x)[2:-1])
\x01\x02\x03\x04
표시 또는 인쇄하기
<byte_object>.decode("utf-8")
인코딩 또는 저장 방법
<str_object>.encode('utf-8')
조금 늦었지만 Python 3.9.1의 경우 이것이 저에게 효과가 있었고 -b 접두사를 제거했습니다.
print(outputCode.decode())
너무 단순해요...(이를 통해 사전을 인코딩하고 바이트를 나열한 다음 json.dump / json.dump를 사용하여 문자열화할 수 있습니다.)
base64만 사용하면 됩니다.
import base64
data = b"Hello world!" # Bytes
data = base64.b64encode(data).decode() # Returns a base64 string, which can be decoded without error.
print(data)
기본적으로 디코딩할 수 없는 바이트가 있습니다(예: 사진). 따라서 base64는 해당 바이트를 문자열로 디코딩할 수 있는 바이트로 인코딩하여 사용하는 바이트를 검색합니다.
data = base64.b64decode(data.encode())
사용하다decode()
대신에encode()
바이트를 문자열로 변환합니다.
>>> import curses
>>> print(curses.version.decode())
2.2
언급URL : https://stackoverflow.com/questions/16748083/print-without-b-prefix-for-bytes-in-python-3
반응형
'programing' 카테고리의 다른 글
SQL Server 2008 R2에서 CONCAT 기능을 사용하려면 어떻게 해야 합니까? (0) | 2023.05.26 |
---|---|
Node.js에서 기본 HTML 로드 (0) | 2023.05.26 |
새 _id를 사용하여 MongoDB에서 문서 복제 (0) | 2023.05.26 |
pep8.py 을 Eclipse에 통합하는 방법은 무엇입니까? (0) | 2023.05.21 |
Visual Studio - Resx 파일의 기본값은 'internal'에서 'public'입니다. (0) | 2023.05.21 |