Problème de flag pickle

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. J'ai trouvé merci. En fait, il confondait OS et Pickle. Au revoir

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

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

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

      0
    2. @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
    3. @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
  3. 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. C'est ce que je viens de lui expliquer ...

      0
    2. @Phil_1857

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

      0
  4. 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
    1. 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. 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
      2. @Pr.Witherfire

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

        Le fichier en question

        0