繁体   English   中英

使用 qrc 提取捆绑的 zip 文件

[英]Using qrc to extract bundled zip files

我尝试了这段代码,它从编译的 qrc 中提取捆绑的 zip 文件,但它给了我错误:

OSError: [Errno 22] Invalid argument: ':/files/file.zip'

有什么帮助/建议吗?

import zipfile
import resources

zf = zipfile.ZipInfo(":/files/file.zip")
for file in zf.infolist():
    zf.extract(file)

zipfile 是一个不设计为直接与 Qt 一起使用的模块,您必须提取字节并使用 BytesIO 作为中介:

import io
import sys
import zipfile

import resource_rc

from PyQt5 import QtCore


file = QtCore.QFile(":/files/file.zip")
if not file.open(QtCore.QFile.ReadOnly):
    print(file.errorString())
    sys.exit(-1)

ba = file.readAll()
f = io.BytesIO(ba)

with zipfile.ZipFile(f, "r") as zf:
    for file in zf.infolist():
        data = zf.extract(file)
        print(data)

暂无
暂无

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

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