Python: ZIP文件与示例

Python允许快速创建zip/tar压缩文件。以下命令将压缩整个目录:

shutil.make_archive(output_filename, 'zip', dir_name)

使用以下命令可以操作要压缩的文件:

ZipFile.write(filename)

下面是使用Python创建zip文件的具体步骤:

步骤1)要从Python创建存档文件,请确保您的import语句正确且有序。这里存档的
import语句是from shutil import make_archive
在这里插入图片描述
代码说明

  • 从模块shutil导入make_archive类;
  • 使用split函数将目录和文件名从路径分割到文本文件的位置(guru99);
  • 然后我们调用模块“shutil.make_archive(”guru99 archive,“zip”,root_dir)“来创建存档文件,这将是zip格式;
  • 之后我们传入我们想要压缩的东西的根目录。所以目录中的所有内容都将被压缩;
  • 运行代码时,可以看到在面板右侧创建了存档zip文件。

步骤2)制作完档案文件后,可以右键单击该文件并选择操作系统,它将在其中显示压缩的文件,如下所示:
在这里插入图片描述
现在archive.zip文件将出现在你的操作系统上(Windows资源管理器)。
在这里插入图片描述
步骤3)当双击该文件时,将看到列表中的所有文件。
在这里插入图片描述

步骤4)在Python中,我们可以更好地控制归档,因为我们可以定义要归档的特定文件。在我们的例子中,我们将在归档“guru99.txt”和“guru99.txt.bak”下包含两个文件。

代码说明

  • 从zip文件Python模块导入Zipfile类。此模块完全控制创建zip文件;
  • 创建一个名为(“testguru99.zip,”w“)的新Zipfile;
  • 创建一个新的Zipfile类,需要传入权限,因为它是一个文件,所以你需要将信息作为newzip写入文件;
  • 使用变量“newzip”来引用我们创建的zip文件;
  • 使用“newzip”变量上的write函数,将文件“guru99.txt”和“guru99.txt.bak”添加到存档;

当你执行代码时,可以看到该文件是在面板右侧创建的,名称为“guru99.zip”。

注意:这里我们不给任何命令“关闭”文件,如“newzip.close”,因为我们使用“With”范围锁定,因此当程序超出此范围时,文件将被清理并自动关闭。

步骤5)当你- >右键单击文件(testguru99.zip)并 - >选择你的操作系统(Windows资源管理器)时,它将在文件夹中显示存档文件,如下所示。
在这里插入图片描述
当你双击文件“testguru99.zip”时,将打开另一个窗口,显示其中包含的文件。
在这里插入图片描述
以下是完整的Python 3代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
 import os
 import shutil
 from zipfile import ZipFile
 from os import path
 from shutil import make_archive
 
     # Check if file exists
       if path.exists("guru99.txt"):
    # get the path to the file in the current directory
        src = path.realpath("guru99.txt");
    # rename the original file
        os.rename("career.guru99.txt","guru99.txt")
    # now put things into a ZIP archive
        root_dir,tail = path.split(src)
        shutil.make_archive("guru99 archive","zip",root_dir)
    # more fine-grained control over ZIP files
       with ZipFile("testguru99.zip", "w") as newzip:
            newzip.write("guru99.txt")
            newzip.write("guru99.txt.bak")

总结

  • 要压缩整个目录,使用命令:
    “shutil.make_archive(”name“,”zip“,root_dir)
  • 要选择要压缩的文件,使用命令“ZipFile.write(filename)”
posted @ 2022-10-07 20:40  I'm_江河湖海  阅读(13)  评论(0)    收藏  举报