繁体   English   中英

如何在不维护 Python 中的目录结构的情况下从 zip 中提取文件?

[英]How to extract file from zip without maintaining directory structure in Python?

我正在尝试使用 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'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM