FileNotFoundError Try and Except 似乎不起作用
FileNotFoundError Try and Except seems to not be working
def make_sender(self):
a = False
y = input("Make sender (Y/N)?")
if y.lower() == "y":
a = True
while a == True:
s = input("Enter folder name : ")
t = input("Enter profile name: ")
try:
p = os.getcwd()+("\profiles")
d = os.path.join(p, s,t)
with open(d+".txt","w") as f:
print(">>> Opened ")
except FileNotFoundError:
print(">>> File not found ")
with open(d+".txt","w") as f:
temp = input("Full Name: ")
temp = temp.title()
f.write(temp+"\n")
temp = input("House Number: ")
f.write(temp+"\n")
temp = input("Street Name : ")
f.write(temp+"\n")
temp = input("Postcode : ")
f.write(temp+"\n")
temp = input("Email : ")
f.write(temp+"\n")
a = False
我以为我的代码会保持 运行,直到输入正确的数据。认为我的 try and except 构建错误。我得到了正确的代码,但认为缩进或其他地方是错误的。
您可以将 with 块移出循环或将其放在 else 块下。首选将需要额外检查 a
(如果 y.lower != 'y'
则在开始时更简单 return
。我认为以下方法更清晰:
def make_sender(self):
y = input("Make sender (Y/N)?")
while y.lower() == 'y':
s = input("Enter folder name : ")
t = input("Enter profile name: ")
try:
p = os.getcwd()+("\profiles")
d = os.path.join(p, s,t)
with open(d+".txt","w") as f:
print(">>> Opened ")
except FileNotFoundError:
print(">>> File not found ")
else:
with open(d+".txt","w") as f:
temp = input("Full Name: ")
temp = temp.title()
f.write(temp+"\n")
temp = input("House Number: ")
f.write(temp+"\n")
temp = input("Street Name : ")
f.write(temp+"\n")
temp = input("Postcode : ")
f.write(temp+"\n")
temp = input("Email : ")
f.write(temp+"\n")
break
def make_sender(self):
a = False
y = input("Make sender (Y/N)?")
if y.lower() == "y":
a = True
while a == True:
s = input("Enter folder name : ")
t = input("Enter profile name: ")
try:
p = os.getcwd()+("\profiles")
d = os.path.join(p, s,t)
with open(d+".txt","w") as f:
print(">>> Opened ")
except FileNotFoundError:
print(">>> File not found ")
with open(d+".txt","w") as f:
temp = input("Full Name: ")
temp = temp.title()
f.write(temp+"\n")
temp = input("House Number: ")
f.write(temp+"\n")
temp = input("Street Name : ")
f.write(temp+"\n")
temp = input("Postcode : ")
f.write(temp+"\n")
temp = input("Email : ")
f.write(temp+"\n")
a = False
我以为我的代码会保持 运行,直到输入正确的数据。认为我的 try and except 构建错误。我得到了正确的代码,但认为缩进或其他地方是错误的。
您可以将 with 块移出循环或将其放在 else 块下。首选将需要额外检查 a
(如果 y.lower != 'y'
则在开始时更简单 return
。我认为以下方法更清晰:
def make_sender(self):
y = input("Make sender (Y/N)?")
while y.lower() == 'y':
s = input("Enter folder name : ")
t = input("Enter profile name: ")
try:
p = os.getcwd()+("\profiles")
d = os.path.join(p, s,t)
with open(d+".txt","w") as f:
print(">>> Opened ")
except FileNotFoundError:
print(">>> File not found ")
else:
with open(d+".txt","w") as f:
temp = input("Full Name: ")
temp = temp.title()
f.write(temp+"\n")
temp = input("House Number: ")
f.write(temp+"\n")
temp = input("Street Name : ")
f.write(temp+"\n")
temp = input("Postcode : ")
f.write(temp+"\n")
temp = input("Email : ")
f.write(temp+"\n")
break