Создайте фрейм данных pandas из файла ресурсов qrc - PullRequest
0 голосов
/ 23 октября 2018

Я хотел бы сохранить файл CSV в файл qrc, а затем прочитать его, поместив его содержимое в кадр данных pandas, но у меня возникли некоторые проблемы.

Я создал файл qrc с именем res.qrc:

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

Я скомпилировал его, получив файл res_rc.py.

Чтобы прочитать его, я создал скрипт на языке python под названием 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.py, res.qrs, res_rc.py, dataset.csv) находятся в одной папке.

Если я сделаю res_rc.qt_resource_data Iможно просмотреть содержимое.

Как создать фрейм данных pandas?

1 Ответ

0 голосов
/ 23 октября 2018

qresource - это виртуальный путь, который только Qt знает, как его получить, и может изменяться внутри системы без предупреждений. В этих случаях необходимо прочитать все данные и преобразовать их в поток с помощью 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)
...