在python中将文件附加到ZipFile

在python中将文件附加到ZipFile,python,zip,zipfile,Python,Zip,Zipfile,首先,我创建了一个新的zipfile: import zipfile zf = zipfile.ZipFile('/data2/new.zip', mode='w') 然后我想在新创建的zipfile中添加一个文件,比如说另一个文件夹中的download.py: zf.write('/data2/another_folder/download.py') 直到我在本地解压它,我发现它不仅附加了文件,而且还附加了所有文件夹,data2和另一个\u文件夹。我必须打开/data2/new/data2

首先,我创建了一个新的zipfile:

import zipfile
zf = zipfile.ZipFile('/data2/new.zip', mode='w')
然后我想在新创建的zipfile中添加一个文件,比如说另一个文件夹中的
download.py

zf.write('/data2/another_folder/download.py')
直到我在本地解压它,我发现它不仅附加了文件,而且还附加了所有文件夹,
data2
另一个\u文件夹
。我必须打开
/data2/new/data2/other_文件夹/
才能找到
download.py

我想附加并且只将文件附加到zipfile。如何避免上述情况

提前谢谢

zf.write('path/to/file.txt', arcname='name_without_path.txt')
如果您想保留相同的名称而不保留路径,也可以这样做:

filepath = 'path/to/file.txt'
zf.write(filepath, arcname=os.path.basename(filepath))
当然,这是假设您确实导入了操作系统

如果您想保留相同的名称而不保留路径,也可以这样做:

filepath = 'path/to/file.txt'
zf.write(filepath, arcname=os.path.basename(filepath))
假设您确实导入了操作系统,
zipfile.write()
方法采用可选的
arcname
参数,指定zipfile中的文件名

import os
import zipfile


zf.write('/data2/another_folder/download.py', 'download.py')
zf.close()
以下是将多个文件压缩到一起的函数:

def zip(list_of_file_paths):
   zf = zipfile.ZipFile("Zipfile.zip", "w", zipfile.ZIP_DEFLATED)
   for path in list_of_file_paths:
       filename = os.path.basename(os.path.normpath(path))
       zf.write(path, filename)
   zf.close()

zip(['path/to/file1', 'path/to/file2', ...]
zipfile.write()
方法采用可选的
arcname
参数,该参数指定zipfile中的文件名

import os
import zipfile


zf.write('/data2/another_folder/download.py', 'download.py')
zf.close()
以下是将多个文件压缩到一起的函数:

def zip(list_of_file_paths):
   zf = zipfile.ZipFile("Zipfile.zip", "w", zipfile.ZIP_DEFLATED)
   for path in list_of_file_paths:
       filename = os.path.basename(os.path.normpath(path))
       zf.write(path, filename)
   zf.close()

zip(['path/to/file1', 'path/to/file2', ...]

谢谢你,这让我省去了很多头痛:)@HelenNeely不客气!如果你还没有,请随意投票。谢谢你。谢谢你,这让我省去了很多头痛:)@HelenNeely,不客气!如果你还没有,请随意投票。谢谢。