繁体   English   中英

如何使用zipfile在绝对路径上创建zip文件

[英]how to create zip file on a absolute path using zipfile

我正在尝试从不同目录创建文件的zip文件。 最后,我想将该zip文件保存到与python文件python不同的路径。 我有以下代码片段

def zipfile_method(file_list):
    try:
        zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip')
        print(zip_path)
        zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
        for files in file_list:
            path = os.path.abspath(files)
            zip_file.write(path)
        zip_file.close()
    except Exception as e:
        print("exception occured during compression %s" % e)


zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf']) 

我的python文件的路径是/Users/nirmalsarswat/Desktop/app.py

我希望文件路径在/Users/nirmalsarswat/Document/jdk.zip但zipfile会将其保存在python文件的同一文件夹中,例如/Users/nirmalsarswat/Desktop/Users/nirmalsarswat/Document/jdk.zip

如何在/Users/nirmalsarswat/Document/jdk.zip路径上保存文件

我正在使用MacOS,Python 3.6.4,请提前谢谢!!!

实际上,我可以看到的是,您做得正确,但是您对路径感到困惑。 当您传递唯一的绝对路径write ,它将使用完整目录压缩文件,这似乎是您面临的问题。

尝试使用write解析basename ,这样可以正常工作

from os.path import basename # add this to your imports
def zipfile_method(file_list):
    try:
        zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip') # no need to this one, parse string itself
        print(zip_path)
        zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
        for files in file_list:
            path = os.path.abspath(files)
            zip_file.write(path, basename(path))
        zip_file.close()
    except Exception as e:
        print("exception occured during compression %s" % e)


zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf']) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM