我正在尝试自动执行一个以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
,然后在以后不覆盖的情况下添加文件?
谢谢!