私はここに小さなアプリケーションを作っています。ファイルがすでに存在するかどうかを確認する必要があるため、ブロックを試してみました。しかし...私のtryブロックは何らかの理由で繰り返されています!私は持っている絶対にいいえアイデアなぜこれが起こっている。助けてください? また、ファイルが作成されます罰金:) コード:私は繰り返しブロックを発行しています
import sys
import time
Version = "V0.1"
def user():
PISBNdat = open("PISBN.dat", "w")
PISBNdat.write(Version)
cuser = raw_input("Please enter account username!")
for line in PISBNdat:
print "Test"
if cuser in line:
print("User already exists! Try again!")
user()
def start():
print "Hello and welcome to Plaz's PISBN!"
print "Opening file..."
time.sleep(0.8)
try:
fin = open("PISBN.dat", "r")
print "Success!"
fin.close()
user()
except:
time.sleep(0.5)
print "Did not recognize/find file!"
time.sleep(0.1)
print "Creating file!"
time.sleep(0.5)
try:
fout = open("PISBN.dat", "w")
print "Success!"
fout.close()
user()
except:
print "Failed!"
exit()
start()
そして、ここでは出力があります...:明らかに今
Hello and welcome to Plaz's PISBN!
Opening file...
Did not recognize/find file!
Creating file!
Success!
Please enter account username! [This is what I entered: Plazmotech]
Failed!
、それは言っているので、それはその実行を意味し '失敗しました!'私のtryブロック... thatsは、それが 'Failed!'を出力できる唯一の場所だからです。だからここで助けてください!
あなたは裸 '除き、使用しないでください:'、あなたが '例外IOErrorを除き、あなたが期待する例外、例えばを除く外必要があります:'私は信じています、この場合。 –
あなたの 'try ... except'ブロックには、エラーを捕捉するのに必要な最小量のコードが含まれている必要があります。あなたの最初の 'try'ブロックは、例えば、' fin = open( "PISBN.dat"、 "r") 'という行だけを含むべきで、あなたのexceptブロックは単にファイルを作成すべきです。 'user()'は両方のブロックの外側で呼び出されるべきです。 –