2014-03-12 4 views
6

Ich bin ziemlich neu in Python.Python FileNotFound

Ich versuche, ein Skript zu machen, das Sudoku-Lösungen und Abschreckung lesen wird, wenn sie korrekt sind oder nicht.

Dinge, die ich brauche:

1], um den Benutzer dazu auffordern, eine Datei/Dateipfad eingeben, die die Sudoku-Zahlen enthält. Es ist eine TXT-Datei mit 9 Zeilen und Spalten. Bestehen Sie nur aus Zahlen.

2] Haben Sie eine Art von Fehlerbehandlung.

3] Wenn dann das Sudoku gültig ist, soll ich eine neue Textdatei mit dem gleichen Format wie die ursprünglichen Eingabedatei mit dem Präfix „Correct_“ erstellen

Ich habe nicht in vollem Umfang das Programm beendet, aber ich Erhalte diesen Fehler, wenn ich einen falschen Pfad oder Dateinamen anlege.

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' 

Hier mein Skript ist:

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)) 

Dank, eine Beratung oder Hilfe wird geschätzt.

+0

Haben Sie 'example.txt' im aktuellen Arbeitsverzeichnis? – jfs

+0

Ich habe keine Ahnung in Python. aber in PHP muss ich sagen, wie man Dateien bekommt. wie: 'fopen ('example.txt', 'rw');' was bedeutet, dass man lesen und schreiben kann. – JonnieJS

+0

diese Datei existiert nicht, es ist nur die Fehlerbehandlung zu testen, um zu sehen, ob es funktioniert. Welches ist nicht. Außerdem habe ich das Lesen nur beim Öffnen Befehl. – zilox

Antwort

12

try Block sollte offen sein. Nicht um 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 
+0

Ja, Sie haben Recht. Es funktionierte. Vielen Dank. – zilox

+0

@eryksun Danke. aktualisiert. – balki