TypeError: 'str' tidak menyokong antara muka penimbal
Soalan:
Bila cuba memampatkan rentetan menggunakan fungsi gzip.open Python, ralat ialah dilemparkan:
TypeError: 'str' does not support the buffer interface
Bagaimanakah isu ini boleh diselesaikan?
Jawapan:
Naik Taraf Python 3: Dalam Python 3, rentetan ialah objek Unicode dan tidak mempunyai antara muka penimbal. Untuk menyelesaikan isu ini, rentetan mesti ditukar kepada bait sebelum menulis ke fail luar:
plaintext = input("Please enter the text you want to compress") filename = input("Please enter the desired filename") with gzip.open(filename + ".gz", "wb") as outfile: outfile.write(plaintext.encode())
Keserasian Penampan: Untuk memastikan keserasian dengan versi Python yang lebih lama, nyatakan pengekodan secara eksplisit:
outfile.write(plaintext.encode('utf-8'))
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan TypeError: 'str' tidak menyokong antara muka penimbal apabila menggunakan gzip.open dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!