web-dev-qa-db-fra.com

Python FileNotFound

Je suis assez nouveau sur python.

J'essaie de faire un script qui lira les solutions de sudoku et découragera si elles sont correctes ou non.

Choses dont j'ai besoin:

1] Invitez l'utilisateur à entrer un fichier/chemin de fichier qui comprend les numéros de sudoku. C'est un fichier .txt de 9 lignes et colonnes. Composé uniquement de chiffres.

2] Avoir une sorte de gestion des erreurs.

3] Ensuite, si le sudoku est valide, je devrais créer un nouveau fichier texte en utilisant le même format que le fichier d'entrée d'origine avec le préfixe "Correct_"

Je n'ai pas complètement terminé le programme, mais j'obtiens cette erreur lorsque je mets un faux chemin ou nom de fichier.

 Hello to Sudoku valitator,

 Please type in the path to your file and press 'Enter': example.txt #This is a non existing file, to test the Error Exception
    'Traceback (most recent call last):
  File "C:/Users/FEDROS/Desktop/bs.py", line 9, in <module>
    sudoku = open(Prompt, 'r').readlines()
FileNotFoundError: [Errno 2] No such file or directory: 'example.txt'

Voici mon script:

while True:
    try:
        Prompt = input("\n Hello to Sudoku valitator,"
    "\n \n Please type in the path to your file and press 'Enter': ")
        break
    except (FileNotFoundError, IOError):
        print("Wrong file or file path")

sudoku = open(Prompt, 'r').readlines()

def check(game):
    n = len(game)
    if n < (1):
        return False

    for i in range(0, n):
        horizontal = []
        vertical = []
        for k in range(0, n):

            if game[k][i] in vertical:
                return ("File checked for errors. Your options are wrong!")
            vertical.append(game[k][i])

            if game[i][k] in horizontal:
                return ("File checked for errors. Your options are wrong!")
            horizontal.append(game[i][k])
    return ("File checked for errors. Your options are correct!")

print (check(sudoku))

Merci, tout conseil ou aide sera apprécié.

7
zilox

Le bloc try doit être à peu près ouvert. Pas autour de Prompt.

while True:
    Prompt = input("\n Hello to Sudoku valitator,"
    "\n \n Please type in the path to your file and press 'Enter': ")
    try:
        sudoku = open(Prompt, 'r').readlines()
    except FileNotFoundError:
        print("Wrong file or file path")
    else:
        break
20
balki