"TypeError: 'str'은 버퍼 인터페이스를 지원하지 않습니다."라는 오류가 발생하면 문자열을 바이트로 변환하는 두 가지 옵션이 있습니다:
더 Python적인 방법 선택
bytes 유형에 대한 Python 문서에서는 bytearray를 기본 방법으로 사용하여 바이트 배열을 초기화할 것을 제안합니다. 문자열:
bytearray([source[, encoding[, errors]]])
이 점을 염두에 두고 바이트는 문자열 인코딩 이외의 다양한 작업을 수행할 수 있으므로 생성자가 다양한 유형의 소스 매개변수를 허용하는 것이 합리적입니다.
특히 문자열 인코딩은 some_string.encode(encoding)을 사용하는 것이 bytes(some_string, 인코딩):
게다가 unicode_string.encode(encoding)도 Python에 더 가깝습니다. 그 반대가 byte_string.decode(인코딩)이기 때문에 대칭을 유지합니다.
CPython으로 성능 최적화
CPython을 사용하는 경우 유니코드 문자열을 바이트에 전달하면 PyUnicode_AsEncodedString을 직접 호출합니다. 이는 인코딩의 기본 구현입니다. 따라서 직접 인코딩을 호출하면 불필요한 간접 수준이 제거되고 잠재적으로 성능이 향상됩니다.
위 내용은 Python 3에서 문자열을 바이트로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!