Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec le path

    30 juillet 2019 à 12:15:11

    # coding: utf8
    import pygame
    from tkinter import filedialog
    from tkinter import *
    root = Tk()
    root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("mp3 files","*.mp3"),("all files","*.*")))
    x = root.filename
    print (x)
    root.destroy()
     
    pygame.mixer.init()
    pygame.mixer.Sound(x).play()

    Aie, nouveau probléme T^T

    MessageNom de FichierLignePosition

    Traceback

        <module>C:\Users\céline\Documents\a  mimi\mp3 player\test.py12

    error: Unable to open file 'C:/Users/c\xe9line/Documents/a  mimi/mp3 player/Elektronomia - Magic [Mpgun.com].mp3'

    comment regler ce probleme la ?

    le path que x est sense contenir est : C:/Users/céline/Documents/a  mimi/mp3 player/Elektronomia - Magic [Mpgun.com].mp3

    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2019 à 17:55:42

      Salut,

      Quelle version de Python utilises-tu ?

      Il semblerait que tu reçoives une chaîne de bytes au lieu d'une chaîne de caractères. Et le plus flippant c'est que c'est pas de l'UTF-8 mais du Latin-1 (Windows-1252). Je parierais que tu utilises encore Python 2... :(

      • Partager sur Facebook
      • Partager sur Twitter
        30 juillet 2019 à 21:28:24

        Salut

        Vu qu'il importe tkinter et non pas Tkinter, à moins qu'une version 2 de Python supporte tkinter, on ne dirait pas qu'il utilise Python 2. Je peux me tromper.

        • Partager sur Facebook
        • Partager sur Twitter
          31 juillet 2019 à 9:20:03

          @LeCobriste C'est bien vu ! :) En effet ça doit être du Python 3. Mais la version est tout de même importante à connaître. Vu PEP 529 -- Change Windows filesystem encoding to UTF-8 il semblerait que l'OP utilise Python 3.5 ou plus bas.

          • Partager sur Facebook
          • Partager sur Twitter
            31 juillet 2019 à 14:18:18

            Bonjour , j'utilise python 3.4 pour information :D vous avez vu juste ,si j'ai bien compris , il faut que je change mon x, qui contient mon chemin Vert le fichier, et qui est stocker en bytes dans la variable , en chaîne de caractères ? 

            Et comment on fait sa ? 😅

            • Partager sur Facebook
            • Partager sur Twitter
              31 juillet 2019 à 16:03:17

              Python 3.4 a atteint sa fin de vie... Comme suggéré, tu devrais installer la dernière version. D'autant plus que tu ne dois rien changer à ton code.

              J'ai cru que tu avais une chaîne de bytes car j'ai cru que tu étais en Python 2. En Python 3.4 tu as bien une chaîne de caractères, mais le mauvais décodage a été utilisé.

              As-tu une raison valable pour rester sur du 3.4 ?

              • Partager sur Facebook
              • Partager sur Twitter
                31 juillet 2019 à 16:25:37

                Salut

                Pour passer de bytes à str, on décode le bytes comme ceci : bytes_variable.decode(), pour faire le chemin inverse : str_variable.encode().

                Ses 2 méthodes contiennent les 2 même paramètres : le type de codage qui est un str, et le type de gestion des erreurs qui est un str. Par défaut, c'est utf-8 pour le codage, et strict pour les erreurs.

                Autant tu ne modifieras pas le 2ème paramètre, autant, selon ce qu'a dit Dan, c'est que le codage par défaut de ta version de Python ne serait pas utf-8 mais le paramètre de codage des 2 méthodes est utf-8.

                Je crois qu'il est possible de savoir le codage par défaut d'une version de Python en faisant :

                import sys
                print(sys.getdefaultencoding())
                
                print(sys.getfilesystemencoding())


                Mais, je te conseille vivement en amont de lire et d'appliquer les consignes des paragraphes Proposal et Specific Changes du lien fourni par Dan.

                Tu peux aussi regarder ce tutoriel, mais, je ne connais pyenv. Cet article pourrait t'aider si tu peux mettre à jour Python vers 3.7.

                • Partager sur Facebook
                • Partager sur Twitter

                probleme avec le path

                × 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