Python : comment stocker une variable
Shulker
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai actuellement un petit problème avec un script en python : j'ai besoin de sauvegarder une variable afin que même après la fermeture de l'exécutable, la variable soit toujours en mémoire.
Petit exemple pour illustrer :
-j'ouvre mon fichier qui me demande mon âge ;
-je réponds que j'ai x ou y années ;
-je ferme la fenêtre ;
-lorsque je la ré-ouvre, on me dit mon âge.
Je ne sais pas du tout comment faire, j'ai fait quelques recherches sur le web, mais je n'ai rien trouvé de satisfaisant, et tout ce qui m'a paru convenable, je ne l'ai pas compris.
Merci d'avance pour votre aide,
Bonne journée !
Cordialement,
j'ai actuellement un petit problème avec un script en python : j'ai besoin de sauvegarder une variable afin que même après la fermeture de l'exécutable, la variable soit toujours en mémoire.
Petit exemple pour illustrer :
-j'ouvre mon fichier qui me demande mon âge ;
-je réponds que j'ai x ou y années ;
-je ferme la fenêtre ;
-lorsque je la ré-ouvre, on me dit mon âge.
Je ne sais pas du tout comment faire, j'ai fait quelques recherches sur le web, mais je n'ai rien trouvé de satisfaisant, et tout ce qui m'a paru convenable, je ne l'ai pas compris.
Merci d'avance pour votre aide,
Bonne journée !
Cordialement,
Configuration: Windows / Edge 98.0.1108.43
A voir également:
- Python tester si une variable est vide
- Flash drive tester - Télécharger - Divers Utilitaires
- Comment supprimer une page vide sur word - Guide
- Tester son pc - Guide
- Caractere vide - Guide
- Citizen code python - Accueil - Outils
16 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
bonjour,
Cela dépend de combien de temps cela doit rester mémorisé.
Une solution simple, c'est d'écrire dans un fichier.
Cela dépend de combien de temps cela doit rester mémorisé.
Une solution simple, c'est d'écrire dans un fichier.
mais en fait, cette variable doit être régulièrement modifiée et le délai peut être de 1 mois comme de 5 min...
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
Le fichier me semble donc une bonne idée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mais du cou p g regardé ça plus en détail et ça me convient. Seulement, ce programme sera distribué à plusieurs personnes sur plusieurs postes différents... Et ils ne peuvent pas partager ce meme fichier. Donc savez-vous comment faire ?
Faut-il créer un espace de stockage commun en ligne ?
Faut-il créer un espace de stockage commun en ligne ?
Mais écoutez, je ne suis pas forcément un crack en informatique et donc est-ce que vous pourriez également m'expliquer comment faire. Je comprendrai toutefois un refus de votre part, vous m'avez déjà bien aidé.
le "w" signifie "write", il sert à indiquer que l'on va écrire dans le fichier...
si tu mets "a" à la place, "append", il va écrire à la suite.
D'accord, merci
si tu mets "a" à la place, "append", il va écrire à la suite.
D'accord, merci
Bon, pour être précis, je suis un élève de troisième participant à un "club anglais" ou nous regardons des films (en anglais...) pour nous améliorer. Dans ce club, le prof qui nous gère nous donne très régulièrement une des fiches de vocabulaire. Et il nous "certifie" lorsqu'on connaît une fiche entière en nous la faisant réciter. Le truc, c'est qu'il y a beaucoup d'élèves qui passent en récitation sans tout connaître parce qu'ils n'ont pas accès à la fiche. Donc un jour, moi et un de mes amis nous sommes proposés pour créer un petit programme qui pourrait interroger les élèves sur le vocabulaire en entier ! Seulement, nous nous sommes rendu compte qu'il faudrait faire communiquer les exécutables entre eux, ou les relier à un même fichier qui contient le vocabulaire. En effet, le programme contient deux interfaces : l'interface élève pour s'interroger sur le vocabulaire et l'interface enseignant pour ajouter des mots ou en supprimer. Cette dernière interface est protégée par un mot de passe que le prof peut changer (il sera donc stocké dans un fichier auquel tout le monde aura accès mais en binaire : ainsi, en ouvrant le fichier texte, les élèves ne comprendront pas). Le seul souci, c'est pour les mots de vocabulaire : je me vois mal donner une nouvelle version a chacun à chaque fois qu'une nouvelle fiche est distribuée : on préférait que cela se passe ainsi : le prof rajoute des mots de vocabulaire qui sont enregistrés dans un fichier texte sur un espace de stockage commun à tous les élèves et au prof. Ainsi, lorsque les élèves lancent le questionnaire, le programme va chercher les mots dans le fichier texte et les nouveaux mots ajoutés par le prof sont quand même demandes aux élèves ! Mais je ne sais pas comment faire pour créer cet espace de stockage commun (quelle plateforme...) en évitant au max d'avoir à créer un compte pour tous les élèves et le prof et comment faire en sorte que ce soit LE fichier sur l'espace de stockage en ligne qui soit choisi par le programme. Faut-il faire en sorte que dès qu'il y a un changement détecté sur l'espace de stockage, le fichier s'enregistre sur l'ordinateur sous une nouvelle version et écrase l'ancienne. Si oui, la non plus je ne sais pas comment m'y prendre. Encore désolé de ne pas avoir pu donner plus d'informations rapidement.
Je suppose que les élèves utilisent leur propre ordi de n'importe où pour faire cela à travers Internet, que cela ne se fait pas via des ordis et un réseau de l'école?
Je pense à ces deux possibilités:
1) enregistrer le fichier texte sur un site web, et, quand il démarre le programme va le chercher et le copie sur l'ordi. cela pourrait être un site web de l'un d'entre vous (cela fait parfois partie des abonnements internet, ou est disponible gratuitement), soit un service d'hebergement de fichier.
Cela risque de rendre ton programme python plus complexe, et il risque de na pas fonctionner correctement sur les ordis de tous.
2) Utiliser un service tel que Google Drive ou One Drive, qui va synchroniser un fichier sur les différents ordis.
Je pense à ces deux possibilités:
1) enregistrer le fichier texte sur un site web, et, quand il démarre le programme va le chercher et le copie sur l'ordi. cela pourrait être un site web de l'un d'entre vous (cela fait parfois partie des abonnements internet, ou est disponible gratuitement), soit un service d'hebergement de fichier.
Cela risque de rendre ton programme python plus complexe, et il risque de na pas fonctionner correctement sur les ordis de tous.
2) Utiliser un service tel que Google Drive ou One Drive, qui va synchroniser un fichier sur les différents ordis.
La deuxième solution me parait la meilleure. Maintenant il me reste toujours une interrogation : comment faire en sorte de synchroniser les fichiers. Et ce qu'il doit simplement être sur Google drive ? Ou alors il faut qu'il se mette ajout automatiquement sur l'ordinateur ?
petite question, j'ai fait ce bout de programme, mais je ne comprends pas pourquoi il ne fonctionne pas...
Pouvez-vous éclairer ma lanterne ?
os.system("cls")
print("\t\t\tEspace enseignant :\n")
print("Vous allez changer votre mot de passe.")
sleep(2)
os.system("cls")
print("\t\t\tEspace enseignant :\n")
change_mot_de_passe1 = str(input("Saisissez votre nouveau mot de passe :\n"))
os.system("cls")
print("\t\t\tEspace enseignant :\n")
change_mot_de_passe2 = str(input("Confirmez votre nouveau mot de passe :\n"))
if change_mot_de_passe1 == change_mot_de_passe2 :
print(change_mot_de_passe1)
mdp=str(change_mot_de_passe1)
f=open("age.dat",'w')
f.write(str(mdp))
f.close
os.system("cls")
print("Votre mot de passe a bien été changé.")
sleep(2)
else :
os.system("cls")
print("\t\t\tEspace enseignant :\n")
print("Aïe... Les deux mots de passe sont différents.")
sleep(2)
os.system("cls")
choix_enseignant1 = True
os.system("cls")
Lorsque la modif a lieu, je retrouve mon fichier age.dat vierge... J'ai sans doute manqué une étape
Merci d'avance !
????
Pouvez-vous éclairer ma lanterne ?
os.system("cls")
print("\t\t\tEspace enseignant :\n")
print("Vous allez changer votre mot de passe.")
sleep(2)
os.system("cls")
print("\t\t\tEspace enseignant :\n")
change_mot_de_passe1 = str(input("Saisissez votre nouveau mot de passe :\n"))
os.system("cls")
print("\t\t\tEspace enseignant :\n")
change_mot_de_passe2 = str(input("Confirmez votre nouveau mot de passe :\n"))
if change_mot_de_passe1 == change_mot_de_passe2 :
print(change_mot_de_passe1)
mdp=str(change_mot_de_passe1)
f=open("age.dat",'w')
f.write(str(mdp))
f.close
os.system("cls")
print("Votre mot de passe a bien été changé.")
sleep(2)
else :
os.system("cls")
print("\t\t\tEspace enseignant :\n")
print("Aïe... Les deux mots de passe sont différents.")
sleep(2)
os.system("cls")
choix_enseignant1 = True
os.system("cls")
Lorsque la modif a lieu, je retrouve mon fichier age.dat vierge... J'ai sans doute manqué une étape
Merci d'avance !
????
peux-tu utiliser les balises de code quand tu partages du code:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Attention aussi à ne pas mélanger plusieurs sujets dans une discussion: parfois préférable de créer une nouvelle discussion.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Attention aussi à ne pas mélanger plusieurs sujets dans une discussion: parfois préférable de créer une nouvelle discussion.