Programme python : problème lors de l'ouverture d'un fichier

Fermé
Shulker_Safe - 12 juin 2022 à 14:17
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 - 19 juin 2022 à 09:08
Bonjour !
Je suis en train de coder un script en python, et j'ai besoin de lire des informations dans un fichier. J'ai donc réalisé ce bout de code :
fichier = open("mots.txt", "r")
stock_out_line = fichier.read()
fichier.close()
mots_prof = []


Mais ça ne marche pas... Pourriez-vous m'aider ?
Merci bcp
A voir également:

6 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
12 juin 2022 à 15:31
Bonjour,

Ton code a l'air correct
Tu as un message d'erreur ?

Apres, si tu veux afficher le contenu du fichier, il faut faire un print:

print(stock_out_line)
0
Shulker_Safe
12 juin 2022 à 21:22
Non aucun... Par contre, lorsque je double clique sur le fichier et que je l'ouvre avec mon environnement python, le page s'ouvre et se referme tout de suite... Et je suis sûr que je problème vient de là
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481
13 juin 2022 à 07:34
bonjour,
tu peux ajouter des print() et des input() pour vérifier ce que fait ton programme.
0
Shulker_Safe
12 juin 2022 à 21:24
ah et j'utilise ma variable stock_out_line après, donc pas besoin de print(XXX)
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
13 juin 2022 à 10:09
Bonjour,

Ajoute cette ligne en fin de code et dis-nous ce que ça donne :

input('Appuyer sur Entrée ...')
0
Shulker_Safe
15 juin 2022 à 14:49
Toujours rien. Le programme s'ouvre et se referme instantanément. ????
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481 > Shulker_Safe
15 juin 2022 à 14:58
et si tu mets la ligne en début de code?
0
Shulker_Safe > yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024
15 juin 2022 à 16:25
Et bien, le programme m'indique "Appuyez sur entrée", j'écris qqch, je fais entrée et... le programme se referme...
Et même si je mets cette ligne de code au début et à la fin, c'est-à-dire ainsi (voir en-dessous), ça ne fonctionne pas...
input('Appuyez sur entrée...')

fichier = open("mots.txt", "r")
stock_out_line = fichier.read()
fichier.close()
mots_prof = []

input('Appuyez sur entrée...')
0
Shulker_Safe > yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024
15 juin 2022 à 16:27
si vous essayez chez vous avec la même programme, ça marche ?
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481 > Shulker_Safe
15 juin 2022 à 16:48
Et en mettant le nom complet du fichier à ouvrir, avec le chemin?
0

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

Posez votre question
Shulker_Safe
15 juin 2022 à 18:56
@yg_be
C'est encore pire, je n'ai même pas le "Appuyez sur entrée..."
Aïe aïe aïe
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481
16 juin 2022 à 10:09
Peux-tu partager le programme?
0
SafeShulker > yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024
16 juin 2022 à 17:09
Mon programme entier ou les tests que vous m'avez demandé d'effectuer?
0
Shulker_Safe > yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024
16 juin 2022 à 19:10
Bon bah voici mon code

import os
from time import sleep
import random
from colorama import Fore, Style
import keyboard

choix_menu = ""
mot_de_passe_entre = ""
choix_jeu_eleve = ""
quit_eleve = ""
change_mot_de_passe_un = ""
change_mot_de_passe_deux = ""
mdp = ""
mots_run = []
mots_faux = []
translater = "ìììì"
help_error = ""
mot_de_passe_prof = ""


fichier = open("mots.txt", "r")
stock_out_line = fichier.read()
fichier.close()
mots_prof = []

while len(stock_out_line) > 0:
    position = stock_out_line.find(translater)
    mots_prof.append(stock_out_line[0:position])
    stock_out_line = stock_out_line[(position + 4):len(stock_out_line)]

while 1 == 1:
    choix_menu1 = False
    while not choix_menu1:
        os.system("cls")
        print("\t\t\tMenu :\n")
        print("Où voulez-vous vous rendre ?")
        print("-Espace élève")
        print("-Espace enseignant")
        print("-Espace sortie\n")
        choix_menu = str(input("Espace : "))
        if choix_menu == "élève" or choix_menu == "eleve" or choix_menu == "Elève" or choix_menu == "Eleve" or \
                choix_menu == "Élève" or choix_menu == "ELEVE" or choix_menu == "ÉLÈVE":
            os.system("cls")
            print("\t\t\tEspace élève :\n")
            print("Bienvenue dans l'espace élève.")
            sleep(2)
            choix_eleve1 = False
            while not choix_eleve1:
                os.system("cls")
                print("\t\t\tEspace élève :\n")
                choix_jeu_eleve = str(input("Voulez-vous lancer une partie de Vocabulary Tester ?\n"))
                if choix_jeu_eleve == "Oui" or choix_jeu_eleve == "oui" or choix_jeu_eleve == "OUI" or \
                        choix_jeu_eleve == " Oui" or choix_jeu_eleve == " oui" or choix_jeu_eleve == " OUI":
                    os.system("cls")
                    print("\t\t\tEspace élève :\n")
                    print("Attention, la partie démarre dans...")
                    aide_depart = 4
                    for loop in range(3):
                        aide_depart = aide_depart - 1
                        print(aide_depart)
                        sleep(0.25)
                        os.system("cls")
                        print("\t\t\tEspace élève :\n")
                        print("Attention, la partie démarre dans...")
                        print(str(aide_depart) + ".")
                        sleep(0.25)
                        os.system("cls")
                        print("\t\t\tEspace élève :\n")
                        print("Attention, la partie démarre dans...")
                        print(str(aide_depart) + "..")
                        sleep(0.25)
                        os.system("cls")
                        print("\t\t\tEspace élève :\n")
                        print("Attention, la partie démarre dans...")
                        print(str(aide_depart) + "...")
                        sleep(0.25)
                        os.system("cls")
                        print("\t\t\tEspace élève :\n")
                        print("Attention, la partie démarre dans...")
                    print("C'est parti !")
                    sleep(1)
                    mots_run = mots_prof
                    while len(mots_run) != 0:
                        choose = (2 * ((random.randint(1, (int(len(mots_run) / 2)))) - 1))
                        os.system("cls")
                        print("\t\t\tEspace élève :\n")
                        answer = str(input("Comment dit-on \"" + mots_run[choose + 1] + "\" en anglais ?\nCela se dit (tout écrire en minuscules) : "))
                        if answer == mots_run[choose]:
                            print("\nBravo, c'est ça !")
                            del mots_run[choose]
                            del mots_run[choose]
                            sleep(1)
                        else:
                            print("\nNon, c'est \"" + mots_run[choose] + "\". Dommage...")
                            if not mots_run[choose] in mots_faux:
                                mots_faux.append(mots_run[choose])
                            sleep(2)
                    fichier = open("mots.txt", "r")
                    stock_out_line = fichier.read()
                    fichier.close()
                    mots_prof = []

                    while len(stock_out_line) > 0:
                        position = stock_out_line.find(translater)
                        mots_prof.append(stock_out_line[0:position])
                        stock_out_line = stock_out_line[(position + 4):len(stock_out_line)]

                    os.system("cls")
                    print("\t\t\tEspace élève :\n")
                    print("Tu as fini !\nClique sur espace pour quitter.\n\nTes résultats :")
                    temo = 0
                    choose = int(len(mots_prof) / 2)
                    for loop in range(choose):
                        if mots_prof[temo] in mots_faux:
                            print(Fore.RED + Style.BRIGHT + mots_prof[temo])
                        else:
                            print(Fore.GREEN + Style.BRIGHT + mots_prof[temo])
                        temo += 2

                    while 1 == 1:
                        if keyboard.is_pressed(" "):
                            print(Style.RESET_ALL)
                            break

                elif choix_jeu_eleve == "Non" or choix_jeu_eleve == "non" or choix_jeu_eleve == "NON" \
                        or choix_jeu_eleve == " Non" or choix_jeu_eleve == " non" or choix_jeu_eleve == " NON":
                    os.system("cls")
                    quit_eleve1 = False
                    while not quit_eleve1:
                        print("\t\t\tEspace élève :\n")
                        quit_eleve = str(input("Voulez-vous quitter l'espace élève ?\n"))
                        if quit_eleve == "oui" or quit_eleve == "Oui" or quit_eleve == "OUI":
                            choix_eleve1 = True
                            quit_eleve1 = True
                        elif quit_eleve == "non" or quit_eleve == "Non" or quit_eleve == "NON":
                            choix_eleve1 = False
                            quit_eleve1 = True
                            os.system("cls")
                            print("\t\t\tEspace élève :\n")
                            print("Well, get lost !\nI'm kidding...")
                            sleep(3)
                        else:
                            os.system("cls")
                            print("\t\t\tEspace élève :\n")
                            print("Mauvais choix. Répondez en un mot.")
                            sleep(2)
                            os.system("cls")
                else:
                    os.system("cls")
                    print("\t\t\tEspace élève :\n")
                    print("Mauvais choix. Répondez en un mot.")
                    sleep(2)
                    os.system("cls")
        elif choix_menu == "enseignant" or choix_menu == "Enseignant" or choix_menu == "ENSEIGNANT":
            os.system("cls")
            fichier = open("mdp.txt", "r")
            mot_de_passe_prof = fichier.read()
            fichier.close()
            mot_de_passe_entre = str(input("Entrez le mot de passe.\n"))
            if mot_de_passe_entre == mot_de_passe_prof:
                os.system("cls")
                print("\t\t\tEspace enseignant :\n")
                print("Bienvenue dans l'espace enseignant.")
                sleep(2)
                quit_enseignant1 = False
                while not quit_enseignant1:
                    choix_enseignant1 = False
                    while not choix_enseignant1:
                        os.system("cls")
                        print("\t\t\tEspace enseignant :\n")
                        print("Que voulez-vous faire ?")
                        print("-Ajouter un mot (1)")
                        print("-Supprimer un mot (2)")
                        print("-Changer le mot de passe (3)")
                        print("-Quitter l'espace enseignant (4)")
                        choix_enseignant = str(input("Répondez avec un chiffre.\n"))
                        if choix_enseignant == "un" or choix_enseignant == "Un" or choix_enseignant == "UN" \
                                or choix_enseignant == "1":
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            print("Vous allez ajouter un mot.")
                            sleep(2)
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            fichier = open("mots.txt", "r")
                            stock_out_line = fichier.read()
                            fichier.close()
                            mots_prof = []
                            while len(stock_out_line) > 0:
                                position = stock_out_line.find(translater)
                                mots_prof.append(stock_out_line[0:position])
                                stock_out_line = stock_out_line[(position + 4):len(stock_out_line)]
                            mot_f_add = str(input("Quel mot souhaitez-vous ajouter en français ?\n"
                                                  "Mot français (tout en minuscules) : "))
                            print(stock_out_line)
                            if not mot_f_add in mots_prof:
                                mot_a_add = str(input("Comment se traduit-il en anglais ?\n"
                                                      "Traduction (tout en minuscules) : "))
                                if not mot_a_add in mots_prof:
                                    mots_prof.append(mot_a_add)
                                    mots_prof.append(mot_f_add)
                                    print("\nVous avez ajouté le mot \"" + mot_f_add + "\", traduit par \""
                                          + mot_a_add + "\".")
                                    aide = 0
                                    for loop in range(len(mots_prof)):
                                        stock_out_line = (str(stock_out_line) + str(mots_prof[aide]) + str(translater))
                                        aide += 1
                                    fichier = open("mots.txt", "w")
                                    fichier.write(stock_out_line)
                                    fichier.close()
                                    sleep(3)
                                else:
                                    os.system("cls")
                                    print("\t\t\tEspace enseignant :\n")
                                    print("Le mot \"" + mot_a_add + "\" anglais a déjà été ajouté.")
                                    sleep(3)
                                choix_enseignant1 = True
                            else:
                                os.system("cls")
                                print("\t\t\tEspace enseignant :\n")
                                print("Le mot \"" + mot_f_add + "\" français a déjà été ajouté.")
                                sleep(3)
                            os.system("cls")
                        elif choix_enseignant == "deux" or choix_enseignant == "DEUX" or choix_enseignant == "Deux" \
                                or choix_enseignant == "2":
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            print("Vous allez supprimer un mot.")
                            sleep(2)
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            word_to_delete = str(input("Quel mot français souhaitez-vous supprimer ?\nMot français (en minuscules) : "))
                            if word_to_delete in mots_prof:
                                place_word_to_delete = mots_prof.index(word_to_delete) - 1
                                mots_prof.pop(place_word_to_delete + 1)
                                mots_prof.pop(place_word_to_delete)
                                os.system("cls")
                                print("\t\t\tEspace enseignant :\n")
                                print("Vous venez de supprimer le mot \"" + word_to_delete + "\".")
                                fichier = open("mots.txt", "w")
                                fichier.write(stock_out_line)
                                fichier.close()
                                sleep(3)
                                choix_enseignant1 = True
                            else:
                                print("\nLe mot \"" + word_to_delete + "\" français n'est pas référencé.")
                                sleep(2)
                            os.system("cls")
                        elif choix_enseignant == "trois" or choix_enseignant == "TROIS" or choix_enseignant == "Trois" \
                                or choix_enseignant == "3":
                            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_passe_un = str(input("Saisissez votre nouveau mot de passe :\n"))
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            change_mot_de_passe_deux = str(input("Confirmez votre nouveau mot de passe :\n"))
                            if change_mot_de_passe_un == change_mot_de_passe_deux:
                                print(change_mot_de_passe_un)
                                mdp = str(change_mot_de_passe_un)
                                fichier = open("mdp.txt", "w")
                                fichier.write(change_mot_de_passe_un)
                                fichier.close()
                                os.system("cls")
                                print("\t\t\tEspace enseignant :\nVotre mot de passe a bien été changé en \"" + change_mot_de_passe_un + "\".")
                                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")
                        elif choix_enseignant == "quatre" or choix_enseignant == "QUATRE" or \
                                choix_enseignant == "Quatre" or choix_enseignant == "4":
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            print("Au plaisir de vous revoir.")
                            sleep(2)
                            choix_enseignant1 = True
                            quit_enseignant1 = True
                            os.system("cls")
                        else:
                            os.system("cls")
                            print("\t\t\tEspace enseignant :\n")
                            print("Mauvais choix. "
                                  "Veuillez répondre avec le chiffre correspondant au choix et non pas un mot.")
                            sleep(4)
                            choix_enseignant1 = False
                            os.system("cls")
            else:
                os.system("cls")
                print("Le mot de passe est incorrect.")
                sleep(2)
                os.system("cls")
        elif choix_menu == "sortie" or choix_menu == "Sortie" or choix_menu == "SORTIE":
            os.system("cls")
            print("\t\t\tMenu :\n")
            print("D'accord. À très bientôt !")
            sleep(2)
            os.system("cls")
            quit()
        elif choix_menu == "banana" or choix_menu == "Banana" or choix_menu == "BANANA":
            os.system("cls")
            print("\t\t\tBanana :\n")
            print("Good choice...")
            sleep(1)
            print("                      MM\n                    M   M\n                    M   M"
                  "\n                    M   MM\n                   MM    M\n                   M      MM"
                  "\n                   M       M\n   MMM           MMM  MMMMM          MMM"
                  "\n  M   MM        M    M    MM       MM    M\n  M    M        M M  M M  MM       M     M"
                  "\n  M   MM        M    M    MM       MM    M\n   MMMM          MMM  MMM  M        MMMM"
                  "\n       MMM       M          M      MMM\n          MMM    MMMMMMM  M   MMM"
                  "\n            MMM  M       M  M  MM\n                MMMM    M   MMM")
            print("                  M  MMM    M\n                  M          M\n                  M          M"
                  "\n                  M        MM\n                  M        M\n                  M        M"
                  "\n                  M       MM\n                  M       M\n                  M      MM"
                  "\n                  MMM  MM\n                   MMMMM\n                   M    M"
                  "\n                  MM    MM\n                  M       M\n                  M       M"
                  "\n              MMMMM      MMMMM\n           MM      M    M      MM\n           M      MM    MM      M"
                  "\n           MMMMM          MMMMM")
            sleep(5)
            os.system("cls")
        else:
            os.system("cls")
            print("\t\t\tMenu :\n")
            print("Mauvais choix. Veillez à ne pas commettre de faute d'orthographe.")
            sleep(1)
            print("Répondez en un seul mot.")
            sleep(2)
            os.system("cls")
0
yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024 1 481 > Shulker_Safe
16 juin 2022 à 19:24
pourquoi ne pas continuer avec l'exemple de départ, beaucoup plus court?
avec input() en plus et le nom complet du fichier, avec son chemin.
0
Shulker_Safe > yg_be Messages postés 22781 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 13 mai 2024
16 juin 2022 à 20:08
input('Appuyez sur entrée...')

fichier = open("C:\Users\lucas\Downloads\bla\mots.txt", "r")
stock_out_line = fichier.read()
fichier.close()
mots_prof = []

input('Appuyez sur entrée...')
0
SafeShulker
15 juin 2022 à 21:00
Mais si vous le faites vous avec le même preogramme, ça fonctionne ? (Juste en double cliquant sur le fichier)
0
Bonjour,

Change l'espace de travail de ton script.

from os import chdir
chdir('LE_CHEMIN_ABSOLU_DE_TON_RÉPERTOIRE_OÙ_SE_SITUE_TON_SCRIPT')
  • Chemin absolu = depuis la racine de ton système d'exploitation.


Et pour visualiser quel est ce répertoire de travail, cela se fait avec la fonction
os.getcw
0
Shulker_Safe > Brivu
16 juin 2022 à 18:47
mais comment on lit un fichier avec ?
0