带有示例的 Python ZIP 文件
Python 允许您快速创建 zip/tar 档案。
以下命令将压缩整个目录
shutil.make_archive(output_filename, 'zip', dir_name)
以下命令可让您控制要归档的文件
ZipFile.write(filename)
以下是在 Python 中创建 Zip 文件的步骤
步骤 1) 要从 Python 创建存档文件,请确保您的导入语句正确且有序。这里存档的导入语句是 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”变量上的写入函数,我们将文件“guru99.txt”和“guru99.txt.bak”添加到存档中
当您执行代码时,您可以看到在面板右侧创建了名为“guru99.zip”的文件
注意 :这里我们没有像“newzip.close”那样“关闭”文件,因为我们使用“With”范围锁定,所以当程序超出这个范围时,文件将被清理并自动关闭。
第 5 步) 当您 -> 右键单击文件 (testguru99.zip) 并 -> 选择您的操作系统(Windows 资源管理器) ,它将显示文件夹中的存档文件,如下所示。
当您双击文件“testguru99.zip”时,它会打开另一个窗口,这将显示其中包含的文件。
这是完整的代码
Python 2 示例
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # 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") if __name__== "__main__": main()
Python 3 示例
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)”
Python