在Python中使用相关性和权限进行压缩

时间:2019-07-09 16:34:55

标签: python zip

我正在尝试自动执行一个以755权限压缩python文件及其所有依赖项的过程。 (这样做的原因是将它们上传到需要文件755权限的AWS Lambda)。

如果我只想压缩依赖项,我会运行

zip -r9 ${OLDPWD}/function.zip .

然后,我从How do I set permissions (attributes) on a file in a ZIP file using Python's zipfile module?编写了一个python脚本,以使用权限进行压缩

def main(lambda_filename):
    zipname = lambda_filename + ".zip"
    filename = lambda_filename + ".py"

    zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED)

    f = open(filename, 'r')
    bytes = f.read()
    f.close()

    info = zipfile.ZipInfo(filename)
    info.external_attr = 0o755 << 16

    zip.writestr(info, bytes, zipfile.ZIP_DEFLATED)

    zip.close()    

if __name__ == "__main__":
    filename = sys.argv[1]
    main(filename)

但是,我将如何结合这两个,以便我可以压缩所有依赖项,然后以755权限添加文件?有什么方法可以运行zip -r9,然后在以后不覆盖的情况下添加文件?

谢谢!

0 个答案:

没有答案