Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre une URL d'un fichier dans une variable

L'url est changeante

    27 août 2023 à 18:06:17

    Bonjour.

    J'ai une adresse url dans un fichier nommer "number.txt"  (1 seule ligne) et lorsque je met cette adresse dans une variable, exemple:

    url = "https://arbre......png"

    J'arrive  à bien l'utiliser dans le script initial et l'adresse est bien dans une variable, et cela exécute le script pas de souci. C'est une image png pour info.

    Mais je dois changer souvent l'adresse url (lorsque j'appuie un bouton avec PyQt5) car j'ai fait en sorte que je récupère une nouvelle adresse url (nouvelle image) qui écrase ce fichier lorsque j’appuie sur bouton.

    Mais le souci je ne veux pas retaper à la main et remplacer l'url par la nouvelle à chaque fois. Et je n'y arrive pas sans cela.
    Comment faire ?

    J'ai pas d'expériences sur les requêtes url  mais j'ai importé  requests et essayé sans succès avec:

    u = open("number.txt", "r")
    url = u.read()
     
    reponse = requests.get(url)
    u.close()
    
    f = open("bois.png", 'wb')
    f.write(reponse.content)
    f.close()
    • Partager sur Facebook
    • Partager sur Twitter
      27 août 2023 à 18:17:42

      No.E.A a écrit:

      J'ai pas d'expériences sur les requêtes url  mais j'ai importé  requests et essayé sans succès avec:

      Une URL est juste une chaine de caractère avec un format particulier. Et quand une fonction appelée avec une chaine de caractères ne fonctionne pas, on regarde le message d'erreur.

      Avec requests, il sera dans un des attributs de reponse (si vous utilisez requests, il va falloir ouvrir la documentation) et ce sera un code HTTP (que vous devez aussi connaître).

      Pour le reste pourquoi passer par des fichiers pour échanger des informations?

      • Partager sur Facebook
      • Partager sur Twitter
        27 août 2023 à 18:40:08

        Effectivement ce sera mieux avec le code de retour d'erreur, seulement j'ai un code 0 lancer avec Thonny et pareil en le lançant sur un terminal (linux).

        A noter que l'url se termine toujours par des chiffres donc des int:   15999332.png

        Pour mon application de bureau j'ai besoin de ces images (dans ces images il y a des données graphique que je veux gardé telle dans un label)  pour que lorsque j’appuie sur un bouton, elle donne des informations par rapport à un autre bouton.

        • Partager sur Facebook
        • Partager sur Twitter
          27 août 2023 à 18:58:47

          No.E.A a écrit:

          Effectivement ce sera mieux avec le code de retour d'erreur, seulement j'ai un code 0 lancer avec Thonny et pareil en le lançant sur un terminal (linux).

          0 ressemble plus à un status de retour d'un programme qu'a un code HTTP (normalement composé de 3 digits).

          Je ne comprends pas de quoi vous parlez.

          • Partager sur Facebook
          • Partager sur Twitter
            27 août 2023 à 19:09:58

            J'utilise mon script python avec Thonny pour une petite application PyQT5. Dans le script python j'y ai mis ce code pour la requête url.

            Voici la fin du code du bouton

            u = open("number.txt", "r")
            url = u.read()
              
            reponse = requests.get(url)
            u.close()
             
            f = open("bois.png", 'wb')
            f.write(reponse.content)
            f.close()
            
            self.ui.label_download.setPixmap(QtGui.QPixmap("bois.png"))

             Je n'ai pas de code d'erreur puisque code 0. Je vais sinon regarder un autre module que Requests, on verra bien.



            • Partager sur Facebook
            • Partager sur Twitter
              27 août 2023 à 19:24:30

              Moi non plus, je ne comprend pas ton problème.

              Comme l'a dit mps, un URL est une chaîne de caractères.

              Tu peux faire de la concaténation de chaînes ou utiliser le format f"

              url = f"https://partie constante{partie variable}.png"

              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                27 août 2023 à 19:52:17

                No.E.A a écrit:

                 Je n'ai pas de code d'erreur puisque code 0. Je vais sinon regarder un autre module que Requests, on verra bien.

                Si vous aviez ouvert la documentation de requests, vous sauriez que le code de retour de la requête HTTP se récupère dans l'attribut status_code de la reponse. Vous pouvez utiliser n'importe quelle autre bibliothèque, sans savoir un minimum de chose sur HTTP, impossible de l'utiliser correctement... mais vous verrez bien.

                • Partager sur Facebook
                • Partager sur Twitter
                  27 août 2023 à 20:36:06

                  Bonne idée Pierrot mais sinon j'ai essayé autre chose  et j'ai réussis à obtenir l'adresse url dans un print cette fois mais à la fin j'ai:

                  .png%0A

                   Rien de grave, je verrais pour corriger ça. Je suis sur le bon chemin maintenant que j'ai l'url dans un print ça va être plus simple.

                  Je reprends les travaux mardi, j'ai passé trop de temps sur cette application.

                  @mps oui vous avez raison, il faut regarder la documentation quand on peut. Bonne soirée.

                  -
                  Edité par No.E.A 27 août 2023 à 20:36:29

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 août 2023 à 20:50:20

                    No.E.A a écrit:

                    @mps oui vous avez raison, il faut regarder la documentation quand on peut. Bonne soirée.

                    Et quand on ne peut pas, on n'appelle pas à l'aide pour qu'on explique ce qui ne marche pas: vous ne comprenez pas non plus les suggestions qu'on peut faire.

                    -
                    Edité par mps 27 août 2023 à 20:52:02

                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 août 2023 à 12:49:16

                      ça vient de read() qui récupère aussi le saut de ligne dans le fichier en rajoutant le '\n' (chr(0x0A)); donc il faut "nettoyer" la lecture du fichier.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 août 2023 à 15:21:39

                        umfred a écrit:

                        ça vient de read() qui récupère aussi le saut de ligne dans le fichier en rajoutant le '\n' (chr(0x0A)); donc il faut "nettoyer" la lecture du fichier.


                        ou éviter de l'y écrire....

                        Dans ce cas, on s'attend à récupérer un 404 dans la réponse HTTP (on est obligé de tester...) qui signale que l'URL n'existe pas et alors on vérifie 3 fois plutôt qu'une que le contenu de l'URL est "correct".

                        -
                        Edité par mps 28 août 2023 à 15:29:21

                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 août 2023 à 7:26:25


                          Et quand on ne peut pas, on n'appelle pas à l'aide pour qu'on explique ce qui ne marche pas: 
                          vous ne comprenez pas non plus les suggestions qu'on peut faire.

                          Entendez un peu, je ne suis pas venu au forum depuis des années, et je fais des scripts python depuis 2 ans et moins d'1 an pour des petites applications graphiques et pourtant, j'ai eu beaucoup de problèmes, mais résolu toujours par moi-même.

                          Maintenant, pour terminer mon application python j'ai eu besoin d'utiliser la bibliothèque Requests que je n'ai jamais utilisée, je ne connais pas le web scraping.
                          J'ai regardé donc sur Requests et pris ce que j'ai besoin pour mon application, et après cela, je n'en aurais plus besoin. j'apprendrais tout le cours du module lorsque j'utiliserais ce module.

                          Le code est correct lorsque on met l'url à la main (l'image est visible.) mais elle ne fonctionne pas lorsque l'url est mis en variable (l'image dans le dossier devient alors illisible.). C'est pourquoi je suis venu au forum pour voir les avis sur ce problème pour vois si le code est bon (je constate qu'il est bon juste pour faire de l'affichage ordinaire, c'est-à-dire url mis à la main.). C'est un problème dans le chargement de l'image png.

                          Nul besoin de connaître le code d'erreur avec/status/code lorsque on connait la solution.
                          Car la solution, je l'ai trouvé, mais pas dans la documentation simplement dans une vidéo. En fait, il faut rajouter des éléments supplémentaires dans le code.
                          Sur ce, bye bye.

                          -
                          Edité par No.E.A 29 août 2023 à 7:42:32

                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 août 2023 à 9:55:02

                            No.E.A a écrit:

                            Nul besoin de connaître le code d'erreur avec/status/code lorsque on connait la solution.

                            Il y en a besoin pour savoir si le résultat de la requête est exploitable et c'est une des bases de la programmation réseau (domaine dont requests fait partie).

                            No.E.A a écrit:

                            Car la solution, je l'ai trouvé, mais pas dans la documentation simplement dans une vidéo

                            Sans informations pertinentes sur la cause du problème, difficile de trouver quoi que ce soit sinon demander des informations complémentaires (que vous n'avez toujours pas fourni, de même que la solution trouvée...).

                            • Partager sur Facebook
                            • Partager sur Twitter
                              29 août 2023 à 12:26:18

                              sur un forum, il est de bon ton de partager la solution.

                              • Partager sur Facebook
                              • Partager sur Twitter

                              Mettre une URL d'un fichier dans une variable

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown