欢迎访问宙启技术站
智能推送

使用Python的zipfile模块将文件添加到已存在的zip文件中

发布时间:2023-12-17 04:20:40

zipfile模块是Python的标准库之一,用于对ZIP文件进行读取和操作。可以使用zipfile模块将文件添加到已存在的zip文件中。下面给出一个例子来演示如何使用zipfile模块向已存在的zip文件中添加文件。

首先,需要导入zipfile模块:

import zipfile

接下来,我们需要打开已存在的zip文件。使用zipfile.ZipFile方法并传入zip文件路径和打开模式'a'表示追加模式,这样我们就可以打开已存在的zip文件并向其中添加文件:

existing_zip = zipfile.ZipFile('existing.zip', 'a')

然后,我们可以使用write方法将一个或多个文件添加到zip文件中。可以传入文件路径作为参数,也可以传入文件对象:

# 添加文件路径到zip文件
existing_zip.write('file1.txt')
existing_zip.write('file2.txt')

# 添加文件对象到zip文件
with open('file3.txt', 'r') as file:
    existing_zip.write(file)

注意:如果要将文件添加到zip文件的特定目录下,可以在文件路径前面添加目录路径。例如,将文件file1.txt添加到zip文件的files目录下可以这样写:

existing_zip.write('files/file1.txt')

添加完文件后,记得关闭zip文件:

existing_zip.close()

完整的示例代码如下:

import zipfile

existing_zip = zipfile.ZipFile('existing.zip', 'a')

existing_zip.write('file1.txt')
existing_zip.write('file2.txt')

with open('file3.txt', 'r') as file:
    existing_zip.write(file)

existing_zip.close()

以上代码将文件file1.txtfile2.txtfile3.txt添加到名为existing.zip的已存在的zip文件中。

需要注意的是,如果zip文件中已经存在同名文件,则会被新文件覆盖。如果想要避免覆盖,在写文件之前可以先通过ZipFile.extractall方法将zip文件解压到一个临时目录中,添加文件后再重新压缩。