Я работаю над сценарием, который загружает и обрабатывает файлы субтитров. Файлы поставляются в формате gzip, и в документации сказано: use: gzinflate (substr (base64_decode ($ subs_b64_data_from_xmlrp c), 10)). В Python 2 это работает нормально, и я получаю строку, содержащую текст субтитров.
compressed_data = download_data['data'][0]['data'].decode('base64')
sub_text = gzip.GzipFile(fileobj=io.BytesIO(compressed_data)).read()
print(sub_text)
Дает мне эту строку:
841
01:52:28,344 --> 01:52:29,878
Sweet dreams, angel.
842
01:53:44,844 --> 01:53:46,377
I love you, honey.
Поскольку я работаю с python 3 Я изменил .decode ('base64') на base64.b64decode () в соответствии с документацией python 3.
compressed_data = base64.b64decode(download_data['data'][0]['data'])
sub_text = gzip.GzipFile(fileobj=io.BytesIO(compressed_data)).read()
print(sub_text)
Но теперь мои данные заканчиваются как байтовый объект и печатные данные выглядит так:
00:33:30,009\r\ncalled Babies I\r\nDon\'t Care About.\r\n\r\n694\r\n00:33:31,305 --> 00:34:31,557\r\n
Как я могу сделать это правильно в python3, чтобы я тоже получил str?