У меня есть блок try/except в функции, которая просит пользователя ввести имя открываемого текстового файла. Если файл не существует, я хочу, чтобы программа снова запрашивала у пользователя имя файла либо до тех пор, пока он не будет найден, либо пока пользователь не нажмет ENTER.
Сейчас блок try/except работает бесконечно.
def getFiles(cryptSelection):
# Function Variable Definitions
inputFile = input("\nEnter the file to " + cryptSelection +\
". Press Enter alone to abort: ")
while True:
if inputFile != '':
try:
fileText = open(inputFile, "r")
fileText.close()
except IOError:
print("Error - that file does not exist. Try again.")
elif inputFile == '':
input("\nRun complete. Press the Enter key to exit.")
else:
print("\nError - Invalid option. Please select again.")
return inputFile
Попробуйте проверить длину обрезанного ввода вместо
''
Да, циклы
while True
работают вечно, если вы их не сломаете, в этом и есть смысл.вам нужно выйти из цикла while после чтения файла.