python压缩文件,python压缩文件夹不带根路径

phpmysqlchengxu

温馨提示:这篇文章已超过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官方文档或其他相关资源。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码