Python GZIP 압축에서 "TypeError: 'str'은 버퍼 인터페이스를 지원하지 않습니다." 문제 해결
Python의 gzip 모듈을 사용하여 문자열을 압축할 때, 개발자는 "TypeError: 'str'이 버퍼 인터페이스를 지원하지 않습니다."라는 오류가 발생할 수 있습니다. 이 오류는 Python 2.x에서 Python 3.x로 전환하면서 문자열 데이터 유형이 변경되면서 발생합니다.
이 문제를 해결하려면 문자열을 바이트로 인코딩한 후 문자열을 바이트로 인코딩해야 합니다. 출력 파일. 다음 코드 조각은 질문에 제공된 코드를 수정합니다.
plaintext = input("Please enter the text you want to compress").encode('UTF-8') filename = input("Please enter the desired filename") with gzip.open(filename + ".gz", "wb") as outfile: outfile.write(plaintext)
일반 텍스트를 바이트로 인코딩하여 Python 3.x에서 수정된 문자열 데이터 유형과의 호환성을 보장합니다. 또한, 혼동을 피하기 위해 "plaintext"와 "filename"은 Python에서 예약어이므로 입력 및 출력 파일에 서로 다른 변수 이름을 사용하는 것이 좋습니다.
예를 들어 다음 코드는 다음 방법을 보여줍니다. UTF-8 인코딩을 사용하여 폴란드어 텍스트를 효과적으로 압축합니다.
text = 'Polish text: ąćęłńóśźżĄĆĘŁŃÓŚŹŻ' filename = 'foo.gz' with gzip.open(filename, 'wb') as outfile: outfile.write(bytes(text, 'UTF-8')) with gzip.open(filename, 'r') as infile: decompressed_text = infile.read().decode('UTF-8') print(decompressed_text)
위 내용은 Python GZIP 압축에서 \'TypeError: \'str\'은 버퍼 인터페이스를 지원하지 않습니다\'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!