从QRC资源文件创建 pandas 数据框 [英] Create a pandas dataframe from a qrc resource file

查看:83
本文介绍了从QRC资源文件创建 pandas 数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将CSV文件保存到qrc文件中,而不是读取它,然后将其内容放入pandas数据框中,但是我有一些问题.

I would like to save a CSV file into a qrc file and than read it putting its contents in a pandas dataframe, but I have some problems.

我创建了一个名为res.qrc的qrc文件:

I created a qrc file called res.qrc:

<!DOCTYPE RCC><RCC version="1.0">
  <qresource>
    <file>dataset.csv</file>
  </qresource>
</RCC>

我对其进行了编译,从而获得了res_rc.py文件.

I compiled it obtaining the res_rc.py file.

要阅读它,我创建了一个名为resource.py的python脚本:

To read it I created a python script called resource.py:

import pandas as pd
import res_rc
from PySide.QtCore import *

file = QFile(":/dataset.csv")
df = pd.read_csv(file.fileName())
print(df)

但是我得到了错误:IOError: File :/dataset.csv does not exist

所有文件(resource.pyres.qrsres_rc.pydataset.csv)都位于同一文件夹中.

All the files (resource.py, res.qrs, res_rc.py, dataset.csv) are in the same folder.

如果执行res_rc.qt_resource_data,我可以看到其中的内容.

If I do res_rc.qt_resource_data I can see the contents.

如何创建熊猫数据框?

推荐答案

qresource是仅Qt知道如何获取它的虚拟路径,并且可以在不发出警告的情况下进行内部更改,在这种情况下,必须阅读以下内容:所有数据,并使用io.BytesIO

The qresource is a virtual path that only Qt knows how to obtain it and can change internally without warnings, in these cases what must be done is to read all the data and convert it into a stream with io.BytesIO

import io
import pandas as pd
from PySide import QtCore
import res_rc


file = QtCore.QFile(":/dataset.csv")
if file.open(QtCore.QIODevice.ReadOnly):
    f = io.BytesIO(file.readAll().data())
    df = pd.read_csv(f)
    print(df)

这篇关于从QRC资源文件创建 pandas 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆