在Python中使用密码创建ZipFile

2024-05-15 10:40:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文件夹结构如下:

MainFolder
    |
   project.xml 
   SubFolder 1
      |
      Files
        |  
        wallpaper.png
        imp.docx
        pdf_1.pdf
    SubFolder 2
        |
        CategoryFolder
          |  
          Files
             |
             something.txt 

以上是我的文件夹结构。我必须创建一个zipFile到带有密码的“MainFolder”,zipFile应该包含我上面显示的所有文件和文件夹。我能够创建没有密码的zipFile,但要求是有密码的zipFile。 那么我怎样才能做到这一点呢。请帮忙


Tags: project文件夹密码pdfpngfilesxml结构
2条回答

根据documentation,python zip库仅使用密码来提取zip文件(而不是创建它们):

pwd is the password used to decrypt encrypted ZIP files.

还有一些其他软件包声称允许这样做。下面是一段代码,用于将名为“main”的文件夹中的所有文件压缩:

from pathlib import Path
import pyminizip

# replace 'main' is your main folder. 
files = [f for f in Path("main").rglob("*") if f.is_file()]

paths = [str(f.parent) for f in files]
file_names = [str(f) for f in files]

# 123456 is the password. 3 is the compression level. 
pyminizip.compress_multiple(file_names, paths, "my.zip", "123456", 3)

另一种解决方案是使用system,或者最好使用Popen,将zip实用程序作为单独的进程调用

你可以在一些包装中看到拉链。根据文件,这是

Modification of Python’s zipfile to read and write AES encrypted zip files.

Source

相关问题 更多 >