Zip 文件是一种流行的方式,可将多个文件压缩并捆绑到单个归档文件中。它们通常用于文件压缩、数据备份和文件分发等任务。在 Python 中压缩或解压缩文件是一种节省硬盘空间并使通过互联网传输文件变得更轻松的有用方法。
如何在 Python 中压缩文件
Python 中的 zipfile 模块提供了创建、读取、写入、追加和提取 ZIP 文件的功能。
压缩单个文件
你可以使用 zipfile
模块创建包含单个文件的 zip 文件。以下是如何操作
import zipfile
# name of the new Zip file
zip_file_name = 'new_zip_file.zip'
# name of the source file
file_name = 'file_to_compress.txt'
# Create a ZipFile Object
zip_object = zipfile.ZipFile(zip_file_name, 'w')
# Add the source file to the zip file
zip_object.write(file_name, compress_type=zipfile.ZIP_DEFLATED)
# Close the Zip File
zip_object.close()
在上面的代码中,我们首先导入了 zipfile
模块。然后我们定义了 zip 文件的名称和源文件的名称。我们创建了一个 ZipFile
对象,并使用 write()
方法向其中添加了源文件。然后我们使用 close()
方法关闭了 zip 文件。
压缩多个文件
你还可以创建包含多个文件的 zip 文件。以下是一个示例
import zipfile
# name of the new Zip file
zip_file_name = 'new_zip_file.zip'
# names of the source files
file_names = ['file_to_compressed1.txt',
'file_to_compressed2.txt',
'file_to_compressed3.txt'
]
# Create a ZipFile Object
zip_object = zipfile.ZipFile(zip_file_name, 'w')
# Add multiple files to the zip file
for file_name in file_names:
zip_object.write(file_name, compress_type=zipfile.ZIP_DEFLATED)
# Close the Zip File
zip_object.close()
在上面的示例中,我们在列表中定义了多个源文件的名称。然后我们使用 for
循环和 write()
方法将每个文件添加到 zip 文件中。最后,我们使用 close()
方法关闭了 zip 文件。
为了进一步压缩 zip 文件,你可以将 compress_type
参数设置为 zipfile.ZIP_DEFLATED
。这会将 DEFLATE 压缩方法应用于要压缩的文件。
在 Python 中解压缩文件
使用 zipfile
模块在 Python 中提取 zip 文件非常简单。以下有两种方法
import zipfile
with zipfile.ZipFile('myzipfile.zip', 'r') as zip_ref:
zip_ref.extractall('destination_folder')
在此示例中,我们首先导入 zipfile
模块。然后我们为要提取的 zip 文件创建一个 ZipFile
类的实例。r
参数表示我们希望从 zip 文件中读取,而 myzipfile.zip
是我们要提取的文件的名称。
extractall()
方法从 zip 文件中提取所有文件,并将它们保存到指定的 destination_folder
中。如果 destination_folder
不存在,则会创建它。
import zipfile
with zipfile.ZipFile('myzipfile.zip', 'r') as zip_ref:
for file in zip_ref.namelist():
if file.endswith('.txt'):
zip_ref.extract(file, 'destination_folder')
在此示例中,我们再次导入 zipfile
模块,并创建一个 ZipFile
类的实例。然后我们使用 namelist()
循环遍历 zip 文件中的所有文件。如果文件具有 .txt
扩展名,则将其提取到 destination_folder
中。
通过使用这两个代码示例,你可以轻松地在 Python 中从 zip 文件中提取文件。请记住根据你的特定需求调整文件路径和命名。