Je voudrais enregistrer un fichier CSV dans un fichier qrc et le lire en mettant son contenu dans un dataframe pandas, mais j'ai quelques problèmes.
J'ai créé un fichier qrc appelé res.qrc
:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>dataset.csv</file>
</qresource>
</RCC>
Je l'ai compilé en obtenant le res_rc.py
fichier.
Pour le lire, j'ai créé un script python appelé 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)
Mais j'obtiens l'erreur: IOError: File :/dataset.csv does not exist
Tous les fichiers ( resource.py
, res.qrs
, res_rc.py
, dataset.csv
) sont dans le même dossier.
Si je le fais, res_rc.qt_resource_data
je peux voir le contenu.
Comment puis-je créer le dataframe pandas?
Il qresource
s'agit d'un chemin virtuel que seul Qt sait comment l'obtenir et peut changer en interne sans avertissement, dans ces cas ce qu'il faut faire est de lire toutes les données et de les convertir en un flux avecio.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)
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots