IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Comment écrire et lire à partir d'un resources file


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut Comment écrire et lire à partir d'un resources file
    salut a tous

    J'ai un fichier .qrc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <RCC>
      <RCC>
      <qresource prefix="/files">
        <file>Myfile.txt</file>
      </qresource>
    </RCC>
    que je compile dans un fichier Python resource.py avec pyrcc5. Dans mon code j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    # coding: utf-8
    import os
    import os.path
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import *
    from design import Ui_Form
    import resource
     
    class main(QWidget, Ui_Form, object):
        def __init__(self):
            QWidget.__init__(self)
            self.setupUi(self)
            self.btn1.clicked.connect(self.write_to_file)
            self.load_file()
        def write_to_file(self):
            with open(":/files/Myfile.txt","r+") as f:
                a=self.txb1.text()
                f.write(a)
                f.close()
        def load_file(self):
            with open(":/files/Myfile.txt","r") as f:
                b=f.readline()
                self.lab1.setText(b)
     
    if __name__ == "__main__":
        import sys
        app = QApplication(sys.argv)
        Form = main()
        Form.show()
    sys.exit(app.exec_())
    app = QApplication(sys.argv)
    app.exec_()
    a l'exécution du programme, j'ai obtenu cette erreur

    Nom : 11.PNG
Affichages : 156
Taille : 6,5 Ko

    Donc ma question est: Comment écrire et lire à partir d'un fichier texte Inclus dans resources file?
    ci-joint les fichiers utilisés dans mon script
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par rabeh.ram Voir le message
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            with open(":/files/Myfile.txt","r+") as f:
                a=self.txb1.text()
                f.write(a)
                f.close()
    Donc ma question est: Comment écrire et lire à partir d'un fichier texte Inclus dans resources file?
    Pour traiter un truc spécifique Qt, tu dois spécifiquement passer par Qt, tu ne peux plus passer par l'OS qui ne connait pas le chemin ":/file". Bon il est probable qu'il existe dans Qt un truc qui transforme un chemin de type "qresource" en chemin "naturel" mais je ne le connais pas. Mais Qt possède un objet QFile pour lire et écrire dans du fichier.

    Accessoirement pas besoin de close() avec un with car le context manager est justement prévu pour fermer automatiquement ce qui a été ouvert quand on le quitte.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre du Club
    Homme Profil pro
    ngénieur d'etat en science géodésique et travaux topographique
    Inscrit en
    Septembre 2016
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : ngénieur d'etat en science géodésique et travaux topographique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2016
    Messages : 152
    Points : 65
    Points
    65
    Par défaut
    Cette méthode fonctionne bien pour les fichiers image (":/exmple.png"), mais lorsque je l'ai appliquée pour les fichiers texte, cela ne fonctionnait pas

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rabeh.ram Voir le message
    Cette méthode fonctionne bien pour les fichiers image (":/exmple.png")
    Comment utilises-tu ton image ? Comme dans cet exemple en utilisant l'image dans un QIcon ? Parce que si c'est le cas ça reste une utilisation Qt et non os.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 465
    Points : 9 257
    Points
    9 257
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    L'utilisation des ressources est spécifique à PyQt, et on ne peut donc pas utiliser une adresse comme ":/files/Myfile.txt" dans la fonction Python "open". Il faut utiliser les fonctions PyQt pour ça.

    Par exemple, j'avais mis en ressource un fichier "ini" pour conserver des données de configuration d'un programme FTP, et j'avais dû utiliser pour lire "QtCore.QSettings".

    Je confirme donc que les ressources PyQt sont utilisables pour les fichiers "texte".
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Comment écrire et lire un fichier Libre Office ?
    Par blackyiun dans le forum Débuter
    Réponses: 0
    Dernier message: 22/06/2014, 22h56
  2. [PHP 5.3] Comment écrire une "querystring" à partir d'une requête SQL
    Par baocrazy dans le forum Langage
    Réponses: 5
    Dernier message: 04/05/2012, 17h17
  3. [HELP] comment écrire et lire simultanément le même fichier via ssh
    Par jack-ft dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 11/03/2011, 12h37
  4. [Débutant] Comment écrire et lire dans un fichier
    Par jeanver dans le forum Delphi
    Réponses: 6
    Dernier message: 15/02/2007, 01h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo