温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!
Python提供了多种方法来压缩文件和文件夹。其中,`zipfile`模块是一个常用的工具,它允许我们创建和操作ZIP格式的压缩文件。
我们需要导入`zipfile`模块。然后,我们可以使用`ZipFile`类来创建一个新的ZIP文件。可以通过指定文件名和模式来创建ZIP文件,模式可以是"r"(只读),"w"(写入)或"a"(追加)。
接下来,我们可以使用`write()`方法将文件或文件夹添加到ZIP文件中。如果要添加一个文件,我们可以直接指定文件路径作为参数;如果要添加一个文件夹,我们需要使用`os.walk()`函数遍历文件夹中的所有文件,并逐个添加到ZIP文件中。
我们需要关闭ZIP文件以确保压缩文件已正确写入。
下面是一个示例代码,演示了如何使用`zipfile`模块压缩文件和文件夹:
import zipfile
import os
def zip_files(source_path, zip_path):
with zipfile.ZipFile(zip_path, 'w') as zipf:
if os.path.isfile(source_path):
zipf.write(source_path, os.path.basename(source_path))
else:
for root, dirs, files in os.walk(source_path):
for file in files:
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, source_path)
zipf.write(file_path, arcname)
source_path = "path/to/source/file_or_folder"
zip_path = "path/to/destination/zip_file.zip"
zip_files(source_path, zip_path)
在上面的示例代码中,我们定义了一个名为`zip_files`的函数,它接受两个参数:源文件或文件夹的路径`source_path`和目标ZIP文件的路径`zip_path`。
我们使用`with`语句创建了一个`ZipFile`对象`zipf`,并指定了模式为写入('w')。然后,我们检查`source_path`是否是一个文件,如果是,则直接将该文件添加到ZIP文件中;如果不是,则使用`os.walk()`函数遍历文件夹中的所有文件,并逐个添加到ZIP文件中。
在添加文件和文件夹时,我们使用了`os.path.basename()`和`os.path.relpath()`函数来获取文件或文件夹的基本名称和相对路径。这样可以确保压缩文件中不带有根路径。
我们在`with`语句块结束时,自动关闭ZIP文件,以确保压缩文件已正确写入。
需要注意的是,`zipfile`模块还提供了其他一些方法和属性,例如解压缩ZIP文件、获取ZIP文件中的文件列表等。如果需要进一步了解更多关于ZIP文件的操作,可以查阅Python官方文档或其他相关资源。