Я думаю, что ошибка будет связана с тем, как вы используете содержимое файла gzip writer.
Вы пытаетесь открыть файл gzip в байтовом режиме и записать в него строку, здесь fp = gzip.open(path, 'wb')
.
Согласно документации python в здесь указано:
'rt', 'at', 'wt' или 'xt' для текстовый режим.
Измените код для использования wt
, который является записью текста, или используйте функцию кодирования для кодирования в байты:
import gzip
import csv
with gzip.open("sample.gz", "wt") as gz_fp:
fieldnames = ['first_name', 'last_name']
writer = csv.writer(gz_fp, delimiter=",")
writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
Если вы хотите записывать байты только тогда :
with gzip.open('file.gz', 'wb') as f:
f.write('Hello world!'.encode())