如何使用Python解码编码的zipfile?

时间:2019-02-18 12:36:38

标签: base64 zipfile pkzip

我有一个base64编码的zip文件。我能够转换该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字符串: enter image description here

1 个答案:

答案 0 :(得分:0)

我的一个朋友帮助了我。我认为在此处发布解决方案可能会对像我这样的许多初学者有所帮助:

 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)