2016-11-13 7 views
1

ここに新しいプログラマーがいるので、私が持っているコードから始めましょう。ユーザーにファイルを依頼する方法

try: 
    f = input("Please type in the path to your file and press 'Enter'") 
    file = open(f,'r') 
except FileNotFoundError: 
    f = input("File not found please try again.") 

私が達成しようとしているのは、ユーザーが間違ったファイルを入力した場合、ユーザーに再度試してもらいたいということです。たぶん、try/exceptを使ってはいけないのでしょうか?

答えて

2

whileループ内にステートメントを埋め込みます。 breakファイルが正常に開かれた場合。

while True: 
    try: 
     f = input("Please type in the path to your file and press 'Enter'") 
     file = open(f, 'r') 
     break 
    except FileNotFoundError: 
     print('File not found') 

注:IOErrorのような他の例外を処理する必要があるかもしれません(たとえ、ファイルが存在し、あなたがそれを開くことはできないかもしれない - なぜならpermsssion、間違ったファイルタイプの、...)

+0

感謝あなた、私はそうするでしょう!それは私に8分待つ必要があると言いますが。 IOErrorをターゲットにしたい場合は、もう一度例外を作成するだけです。 – Blakester

+1

IOExceptionを 'FileNotFoundError'とは違って扱いたい場合は、' IOError:を除きます。または 'except(FileNotFoundError、IOException):'と同じ方法で処理したい場合は ' – falsetru

関連する問題