Как декодировать закодированный zipfile, используя Python?

У меня есть zip-файл в кодировке base64. Я могу преобразовать этот zip-файл, а затем извлечь его содержимое с помощью командной строки Windows. Я пытался сделать то же самое с Python, но безуспешно. Не могли бы вы мне помочь? Когда я запускаю следующий код:

import base64
import codecs
import zlib
import io, zipfile, json, pprint

d = open("data.txt", "rb").read()
#dd = base64.decodestring(d)
#print(dd)
z = zipfile.ZipFile(io.BytesIO(d))
unpack = zlib.decompress(d)

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

поднять BadZipFile("Файл не является zip-файлом") zipfile.BadZipFile: Файл не является zip-файлом

Файл data.txt содержит строку base64:введите описание изображения здесь

2 ответа

Мой друг помог мне. Я думал, что размещение решения здесь может помочь многим новичкам, таким как я:

 def convert(d,name, ex):
    with open('output_file.zip', 'wb') as result:
        result.write(base64.b64decode(d))
    zip_ref = zipfile.ZipFile("output_file.zip", 'r')
    zip_ref.extractall("extracted_file")
    zip_ref.close()

    for filename in os.listdir("extracted_file"):
        extracted_file = "extracted_file/"+filename
        shutil.move(extracted_file, "images/"+name+ex)
       with zipfile.ZipFile("archivo.zip", "r") as zip_ref:
        # Iterar a través de cada archivo en el archivo ZIP
        for file in zip_ref.namelist():
            # Leer el contenido del archivo y codificarlo en base64
            with zip_ref.open(file) as file_content:
                encoded_content = base64.b64encode(file_content.read())
                # Agregar los datos a la lista
                data_to_insert.append((file, encoded_content))
Другие вопросы по тегам