2015-12-14 39 views
5

我正在使用python的zipfile模块。
拥有位于的路径中的zip文件:
/home/user/a/b/c/test.zip
并具有创建另一个文件下/home/user/a/b/c/1.txt 我想将这个文件添加到现有的拉链,我所做的:
zip = zipfile.ZipFile('/home/user/a/b/c/test.zip','a') zip.write('/home/user/a/b/c/1.txt') zip.close()将文件添加到现有的zip文件

,并得到所有子文件夹解压缩文件时出现在路径中,如何在不使用路径子文件夹的情况下输入zip文件?

我也试过: zip.write(os.path.basename('/home/user/a/b/c/1.txt')) 并得到了一个错误,该文件不存在,虽然它。

注意:我没有在路径中使用硬编码的值,它在这个例子中只是为了简化它。

回答

7

你有非常密切:

zip.write(path_to_file, os.path.basename(path_to_file)) 

应该为你做的伎俩。

说明:zip.write函数接受第二个参数(arcname),它是要存储在zip归档文件中的文件名,请参阅zipfile的更多详细信息文档。

os.path.basename()为您取下路径中的目录,以便该文件将存储在存档中,并以其名称命名。

请注意,如果您只有zip.write(os.path.basename(path_to_file))它将查找当前目录中的文件(如错误所述)不存在。