【发布时间】:2021-09-14 10:44:49
【问题描述】:
我正在尝试压缩我的代码,但特别是两个文件夹,main 和 pymysql。我正在使用以下代码创建一个似乎结构正确的文件夹。
import os
import zipfile
def zipit(folders, zip_filename):
zip_file = zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED)
for folder in folders:
for dirpath, dirnames, filenames in os.walk(folder):
for filename in filenames:
zip_file.write(
os.path.join(dirpath, filename),
os.path.relpath(os.path.join(dirpath, filename), os.path.join(folders[0], '../..')))
zip_file.close()
folders = [
"main",
"pymysql"]
if __name__ == "__main__":
zipit(folders, "project-lambda-preSignUpTrigger.zip")
当我提取上面的文件时,我得到的东西看起来像这样(目录 1)
project-lambda-preSignUpTrigger
- main
- pymysql
这看起来是正确的。但是,当我将 zip 文件上传到 AWS lambda 时,结果是这样的。 (目录2)
project-lambda-preSignUpTrigger
- project-lambda-preSignUpTrigger
-- main
-- pymysql
现在我认为这可能是一个 aws lambda 问题,但我更正了那里的文件结构并将其导出为一个 zip,它为我提供了一个与目录 1 相同的文件。我上传了这个 zip 并按照我的需要上传像目录 1。因此,我相信这是由于我使用 zipfile 的方式。有人知道为什么吗?
【问题讨论】:
标签: python aws-lambda zipfile