1

我想将 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我可以看到内容。

如何创建熊猫数据框?

4

1 回答 1

0

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)
于 2018-10-23T16:06:55.050 回答