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

标签 python zip unzip directory-structure

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

相关文章:

python - 从 Flask 路由中的 wtforms FormField 获取数据

linux - 如何使用终端从 Ubuntu 16.04 中的特定文件夹中删除特定文件

git - 如何从其 zip 克隆 git 存储库

c++ - libzip 中的 zip_open 出错

python - 有没有一种简单的方法可以从另一个 df 中的一个数据帧中搜索字符串并返回关联值?

python - 通过SSH隧道访问远程数据库

c# - 使用 C# 解压缩 zip 文件时路径中的非法字符

python - Python-如何搜索位于https上iframe中的zip文件

java - 解压缩后无法删除 zip 文件?

python - 在 Python 中抓取 javascript 呈现的网站的 "Script part"