我在PyQt5中创建简单的UI应用程序。我想将所有资源文件都放在 qrc 资源中。
我正在使用泡菜数据结构来存储以前创建的数据帧。在我的应用程序中,我正在阅读保存的熊猫泡菜。当我尝试从qrc_resources(使用 pyrcc5 创建(Python 模块执行此操作时,我收到一个错误。
我使用了与此答案相同的方法:
从 qrc 资源文件创建熊猫数据帧
资源文件:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file alias="AA_data.pkl">resources/AA_data.pkl</file>
</qresource>
</RCC>
蟒蛇代码:
import bisect, io
import pandas as pd
from PyQt5.QtGui import QImage
from PyQt5.QtCore import QFile, QIODevice
import qrc_resources
file = QFile(':/AA_data.pkl')
if file.open(QIODevice.ReadOnly):
f = io.BytesIO(file.readAll().data())
AA_df = pd.read_pickle(f)
<小时 /> Error:
ValueError: Unrecognized compression type: infer
如果我对 Excel 文件做类似的事情,它可以工作。但是对于泡菜文件格式,我收到一个错误。我对数据序列化不是很熟悉,我无法弄清楚我做错了什么。
必须使用 None 进行压缩:
import io
import pandas as pd
from PyQt5.QtCore import QFile, QIODevice
import qrc_resources
file = QFile(':/AA_data.pkl')
if file.open(QIODevice.ReadOnly):
f = io.BytesIO(file.readAll().data())
AA_df = pd.read_pickle(f, compression=None)
print(AA_df)