Как распаковать строку gzip, когда нет полной исходной строки - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь распаковать сжатую строку gzip. Но, к сожалению, у меня нет всего этого, поэтому я получаю ошибку EOFError: Compressed file ended before the end-of-stream marker was reached.

Код следующий. Имея строку в качестве строки в кодировке base64 (к сожалению, это не полная кодированная строка), мне удалось ее декодировать. Но есть проблема при попытке распаковать его.

import gzip
import base64
import binascii

if __name__ == "__main__":
    string = 'some secret string. cannot give you details'

    decoded = ""
    decompressed = ""
    while True:
        try:
            decoded = base64.b64decode(string)
        except binascii.Error as e:
            string=string[:-1]
            # string+='='
            # string+='A'
        else: 
            print(decoded)
            break

    while True:
        # try:
        decompressed = gzip.decompress(decoded)
        # except Exception as e:
        #     print (e)
        #     decoded=decoded[:-1]
        # else: 
        #     print(decompressed)
        #     break


...