Problème de flag pickle

Pr.Witherfire -  
Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour. C'est bizarre, j'y arrivais avant, mais la, je n'arrive pas à importer un fichier avec pickle. Quand je met le flage "rb", il me dit

"Traceback (most recent call last):
  File "C:\Users\Pr.Witherfire\PycharmProjects\PCHI\main.py", line 833, in <module>
    FoImportation()
  File "C:\Users\Pr.Witherfire\PycharmProjects\PCHI\main.py", line 742, in FoImportation
    open(LoadGeneral, "rb")
TypeError: 'str' object cannot be interpreted as an integer

Mais je ne lui demande absolument pas d'interpreté le flag comme un entier!

Merci.

5 réponses

  1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
     

    Salut,

    Ce ne serait pas plutôt :

    LoadGeneral = "D:\Pr.Witherfire\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Sauvegardes\Sauve.Sauve"
    
    fichier = open(LoadGeneral, "rb")
    Srest = pickle.load(fichier)
    1
    1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
       

      C'est ce que je viens de lui expliquer ...

      0
      1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140 > Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention  
         

        Bah oui... et 11h50 vs 11h50 suis grillé 

        0
  2. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    Bonjour,

    Peux tu afficher ton code que l'on puisse examiner le problème

    (avec les balises de code, comme d'habitude :-) )

    Normalement, tu a fait un truc dans ce genre:

    f = open(nom_du_fichier,'rb')
    ma_donnee = pickle.load(f)
    # etc ....
    
    0
    1. Pr.Witherfire
       
      LoadGeneral = "D:\Pr.Witherfire\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Sauvegardes\Sauve.Sauve"
      
      open(LoadGeneral, "rb")
      Srest = pickle.load(LoadGeneral)
      Exp = Srest.get("Exp")
      close(LoadGeneral)

      L'idée, c'est de récuperer la variable "Exp" dans le fichier

      0
      1. Pr.Witherfire > Pr.Witherfire
         

        https://www.mediafire.com/file/q3kryugi8ojvqfe/Sauve.Sauve/file

        Le fichier en question

        0
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    ok, ce n'est pas du tout comme ça

    correction:

    LoadGeneral = "D:\Pr.Witherfire\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Sauvegardes\Sauve.Sauve"
    
    f = open(LoadGeneral, "rb")
    exp = pickle.load(f) # ici on récupère une donnée dans le fichier
    close(f)

    pickle.load recoit un identifiant de fichier, pas le nom du fichier 

    0
  4. Pr.Witherfire
     

    Ok merci beaucoup cela marche comme sur des roulettes ! Au revoir

    0
    1. Pr.Witherfire
       

      EDIT: J'ai essayé dans un autre code, plus conséquent, cà ne marche pas...

      0
      1. Pr.Witherfire > Pr.Witherfire
         

        Le voila

        # IMPORTS---------------------------------------------------------------------------------------------------------------
        
        
        
        
        import pickle
        from tkinter import *
        from os import *
        
        
        
        
        # INFOS-----------------------------------------------------------------------------------------------------------------
        
        Version = "Consolaire"
        Color1 = "#41413F"
        Color2 = "white"
        Police = "Arial"
        LoadGeneral = "D:\Gwenneg\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Sauvegardes\Sauve.Sauve"
        
        
        
        
        
        # FONCTIONS-------------------------------------------------------------------------------------------------------------
        
        
        
        
        
        
        
        
        def FoFermetureMenu(self):
        
        
            NbDeProjetP1=0
            S = {"NbDeProjetP1": int(NbDeProjetP1), "Exp": 1}
            with open(LoadGeneral, "wb") as FileSGenerale:
                pickle.dump(S, FileSGenerale)
            F.destroy()
        
        
        
        
        
        # Importation
        
        
        
        
        LoadGeneral = "D:\Gwenneg\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Sauvegardes\Sauve.Sauve"
        fichier = open(LoadGeneral, "rb")
        Srest = pickle.load(fichier)
        exp = Srest["Exp"]
        print(Srest)
        print(exp)
        
        
        def FoMenu():
        
            F = Tk()
            global Exp
            F.title(Version + " Menu")
            F.iconbitmap("D:\Gwenneg\Programmation\Python\\3-Repertoires\\1-PCHI\\1-PCHI Consolaire\PCHI\Ressources\Images\Logo.ico")
            F.geometry("1600x900+-8+0")
            F.overrideredirect(0)
            F.config(bg=Color1)
            CMenu = Canvas(F, width=1600, height=270, bg=Color2)
            CMenu.place(x=0, y=0)
            LtMenu = Label(CMenu, text="Maths PCHI", font=(Police, 40), fg=Color1, bg=Color2)
            LtMenu.place(x=375, y=100)
        
            F.protocol("WM_DELETE_WINDOW", lambda: FoFermetureMenu(1))
        
            if Exp == 0:
        
                F.update()
        
        
            if Exp == 1:
        
                F.mainloop()
        
        
            # Exp Checker
        
            if Exp == 0:
        
                print("Exp=0")
        
        
        FoMenu()
        
        
        0
      2. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140 > Pr.Witherfire
         

        Je pense que tu mélanges trop de choses à force de copier/coller, déjà self n'est pas un argument que l'on passe à une fonction (surtout si on ne l'utilise pas), de plus la notion de portée de variable t'es inconnu, ton script est à revoir...

        Ton traceback devrait t'aider à comprendre les erreurs.

        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Pr.Witherfire
     

    J'ai trouvé merci. En fait, il confondait OS et Pickle. Au revoir

    0
    1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
       

      Ça c'est grave.... car tu n'as pas pris en compte nos conseils depuis le début...

      0