Problème de flag pickle

Fermé
Pr.Witherfire - 22 janv. 2023 à 11:25
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 - 22 janv. 2023 à 13:42

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

Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
22 janv. 2023 à 11:50

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
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
22 janv. 2023 à 11:52

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

0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40 > Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024
22 janv. 2023 à 11:54

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

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 22 janv. 2023 à 11:34

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
Pr.Witherfire
22 janv. 2023 à 11:45
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
Pr.Witherfire > Pr.Witherfire
22 janv. 2023 à 11:46

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

Le fichier en question

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 22 janv. 2023 à 11:50

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
Pr.Witherfire
22 janv. 2023 à 11:55

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

0
Pr.Witherfire
22 janv. 2023 à 12:02

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

0
Pr.Witherfire > Pr.Witherfire
22 janv. 2023 à 12:07

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
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40 > Pr.Witherfire
22 janv. 2023 à 12:58

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

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

Posez votre question
Pr.Witherfire
22 janv. 2023 à 13:36

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

0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
22 janv. 2023 à 13:42

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

0