Как декодировать закодированный 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))