extractAll()
将提取当前目录中的文件,这取决于/var/task/test- deploy
您的情况。
您需要使用os.chdir()
更改当前目录:
import os, zipfile
os.chdir('/tmp')
with zipfile.ZipFile(source, 'r') as archive:
archive.extractall()
更好的是,您可以创建一个临时目录并将文件解压缩到其中,以避免造成污染/tmp
:
import os, tempfile, zipfile
with tempfile.TemporaryDirectory() as tmpdir:
os.chdir(tmpdir)
with zipfile.ZipFile(source, 'r') as archive:
archive.extractall()
import os, tempfile, zipfile, contextlib
@contextlib.context_manager
def temporary_work_dir():
old_work_dir = os.getcwd()
with tempfile.TemporaryDirectory() as tmp_dir:
os.chdir(tmp_dir)
try:
yield
finally:
os.chdir(old_work_dir)
with temporary_work_dir():
with zipfile.ZipFile(source, 'r') as archive:
archive.extractall()