3

实际上我正在编写一个将两个文件写入桌面的脚本,让它成为“a.txt”和“b.txt”......所以在写入桌面后我必须阅读这些文件并压缩放入文件夹中......

任何人都可以帮助解决这个问题....我知道如何压缩文件夹,但不知道如何将两个文件添加到 zip

从文件夹中读取我知道它是这样的

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()

这是创建这两个文件加上一些包含所有文件的额外文件夹.......

4

2 回答 2

1

您需要使用“a”-append 参数打开 zip 文件。然后您可以使用 write 参数而不覆盖文件。

来源:12.4.1

编辑:

zip.write('file.pdf','/folder/file.pdf')

于 2012-05-15T08:54:14.440 回答
0

最简单的方法是使用shutil 库。将所有要压缩的文件放在一个目录(文件夹)中

import shutil
shutil.make_archive(output_filename_dont_add_.zip, 'zip', directory_to_download)

请记住,如果您使用 ipython,您可以使用 directory_to_download 的相对地址

于 2018-06-04T20:48:21.580 回答