实际上我正在写一个脚本,它将两个文件写入桌面,让它分别为"a.txt“和"b.txt"......因此,在写入桌面后,我必须读取这些文件并将其压缩到一个文件夹中。
我知道如何压缩文件夹,但不知道如何将两个文件添加到压缩包中
从文件夹中读取我知道它是这样的
def zipdir(basedir, archivename):
assert os.path.isdir(basedir)
with closing(ZipFile(archivename, "w", ZIP_DEFLATED)) as z:
for root, dirs, files in os.walk(basedir):
for fn in files:
absfn = os.path.join(root, fn)
zfn = absfn[len(basedir)+len(os.sep):]
z.write(absfn, zfn)
if __name__ == '__main__':
import sys
basedir = sys.argv[1]
archivename = sys.argv[2]
zipdir(basedir, archivename)
我现在使用的代码是
import zipfile
zip = zipfile.ZipFile('Python.zip', 'a')
zip.write('fields.txt')
zip.write('grp.txt')
zip.close()
这是创建的文件,这两个加上一些额外的文件夹,其中包含所有文件.......
发布于 2012-05-15 16:54:14
您需要使用"a“-append参数打开压缩文件。然后,您可以使用write参数,而无需覆盖文件。
来源:12.4.1
编辑:
zip.write('file.pdf','/folder/file.pdf')
发布于 2018-06-05 04:48:22
最简单的方法是使用shutil库。将你想要压缩的所有文件放在一个目录(文件夹)中
import shutil
shutil.make_archive(output_filename_dont_add_.zip, 'zip', directory_to_download)
记住,如果你使用ipython,你可以使用directory_to_download的相对地址。
https://stackoverflow.com/questions/10596297
复制相似问题