我正在尝试使用 python 从 zip 存档中提取特定文件。
在这种情况下,从 apk 本身中提取 apk 的图标。
我正在使用
with zipfile.ZipFile('/path/to/my_file.apk') as z:
# extract /res/drawable/icon.png from apk to /temp/...
z.extract('/res/drawable/icon.png', 'temp/')
确实有效,在我的脚本目录中它正在创建 temp/res/drawable/icon.png
这是 temp 加上与文件在 apk 中的相同路径。
我真正想要的是以 temp/icon.png
结尾。
有什么方法可以直接使用 zip 命令执行此操作,还是我需要解压缩,然后移动文件,然后手动删除目录?
最佳答案
您可以使用 zipfile.ZipFile.open :
import shutil
import zipfile
with zipfile.ZipFile('/path/to/my_file.apk') as z:
with z.open('/res/drawable/icon.png') as zf, open('temp/icon.png', 'wb') as f:
shutil.copyfileobj(zf, f)
或使用 zipfile.ZipFile.read :
import zipfile
with zipfile.ZipFile('/path/to/my_file.apk') as z:
with open('temp/icon.png', 'wb') as f:
f.write(z.read('/res/drawable/icon.png'))
关于python - 如何在不维护 Python 中的目录结构的情况下从 zip 中提取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729703/