【问题标题】:Python ZipFile module problem when file is encrypted文件加密时的Python ZipFile模块问题
【发布时间】:2020-09-30 13:41:55
【问题描述】:

我有以下短程序

from zipfile import ZipFile
procFile1 ="C:\\Temp\\XLFile-Demo.zip"
procFile2 ="C:\\Temp2\\XLFile-Demo-PW123.zip"

# Unencrypted file
print ("Unencrypted file")
myzip1 = ZipFile(procFile1)
print (myzip1.infolist())
myzip1.extractall("C:\\Temp")

# Encrypted File
print ("Encrypted file")
myzip2 = ZipFile(procFile2)
print (myzip2.infolist())
myzip2.setpassword(bytes('123', 'utf-8'))
myzip2.extractall("C:\\Temp2")enter code here

Amazon Drive link 是这两个文件。它们是相同的,只是一个 zip 使用密码 123 保护。

执行上述代码成功提取未加密的一个,但引发错误NotImplementedError:不支持该压缩方法

Unencrypted file
[<ZipInfo filename='XLFile-Demo.xlsx' compress_type=deflate external_attr=0x20 file_size=31964 compress_size=29252>]

Encrypted file
[<ZipInfo filename='XLFile-Demo.xlsx' compress_type=99 external_attr=0x20 file_size=31964 compress_size=29280>]

我到底做错了什么?

【问题讨论】:

    标签: python-3.x zipfile


    【解决方案1】:

    使用 WinRar 的 ZIP 选项压缩文件时出现错误。我安装了 7Zip,它正在工作。

    7Zip 文件的 .infolist 如下:

    [<ZipInfo filename='XLFile-Demo.xlsx' compress_type=deflate external_attr=0x20 file_size=31964 compress_size=29340>]
    

    顺便说一句,WinRar 可以处理这个文件,而 7Zip 可以正确处理 WinRar 创建的加密 Zip 压缩包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多