在python中不维护目录结构的情况下从zip存档中提取特定文件

2024-05-18 05:36:57 发布

您现在位置: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命令执行此操作,或者我需要先提取,然后移动文件,然后手动删除目录?


Tags: 文件to目录pngwithextractreszip
1条回答
网友
1楼 · 发布于 2024-05-18 05:36:57

您可以使用zipfile.ZipFile.open

import os
import shutil

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 os

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'))

相关问题 更多 >