файл распаковки python gzip

#python #compression #gzip

#python #сжатие #gzip

Вопрос:

Я пытаюсь распаковать файл, используя его местоположение:

 gzip.decompress(input_path)
 

где входной путь /media/uploads/dino_test.msh_b1R1dcs.gz

Я получаю следующую ошибку:

 File "/usr/lib64/python3.6/gzip.py", line 531, in decompress
with GzipFile(fileobj=io.BytesIO(data)) as f:
TypeError: a bytes-like object is required, not 'str'
 

Я понимаю, что распаковка ожидает файл, а не путь. Как мне распаковать файл, зная местоположение? Файл загружается и помещается в папку с помощью скрипта python, запущенного в серверной части.

Комментарии:

1. Может быть, попробовать gzip.open(input_path)

Ответ №1:

 gz_files = [file for file in os.listdir(input_path) if file.endswith('.gz')]
 

Если вы уверены, что у вас есть только один файл, то

 gzip.decompress(gz_files[0])
 

Ответ №2:

Попробуйте использовать приведенный ниже код, распакуйте необходимый файловый объект.

 with open(input_path) as fp:
   gzip.decompress(fp)