아래 내용은 공부한 것을 정리하므로 틀린 내용이 포함되어 있을 수 있습니다.
- bytes는 유니코드가 아닌 문자열을 사용하는 것과 유사함.
- bytes는 원시 이진 데이터로 사용되어지거나 1바이트 문자로 고정을 위해 사용되어집니다.
- bytes HTTP 응답과 같은 파일과 네트워크 리소스는 바이트 스트림으로 전송되기 때문에 이해하는 것이 중요합니다.
- 반면에 우리는 유니 코드 문자열의 편의성을 선호합니다. 그렇기에 상호변환을 하는 경우가 많습니다.
1. bytes 사용
- 사용방법은 문자열 앞에
b
를 입력합니다. - REPL을 사용해보겠습니다.
>>> b = b'abcde' >>> b b'abcde' >>> print(b) b'abcde' >>> type(b) <class 'bytes'>
- bytes는 split을 하여도 내부 원소는 bytes형태가 됩니다.
>>> s = b'abc def ghi' >>> s.split() [b'abc', b'def', b'ghi']
2. str to bytes, bytes to str
- 문자열을 encode하면 byte형이 되고 byte형을 decode하면 문자열이 됩니다.
>>> s = 'Vi er så glad for å høre og lære om Python!' >>> b = s.encode('utf-8') >>> b b'Vi er s\xc3\xa5 glad for \xc3\xa5 h\xc3\xb8re og l\xc3\xa6re om Python!' >>> b.decode('utf-8') 'Vi er så glad for å høre og lære om Python!'