2016-11-18 3 views
0

Я создаю программу, которая просит пользователя выбрать файл для запуска в программе, но я не могу остановить программу от сбоев, когда имя файла не существует . Я попробовал инструкции try и для циклов, но все они дали ошибку. Код у меня есть для выбора файла ниже:Невозможно остановить программу от сбоев с неправильным файлом, введенным пользователем

data = [] 
print "Welcome to the program!" 
chosen = raw_input("Please choose a file name to use with the program:") 
for line in open(chosen): 
    our_data = line.split(",") 

    data.append(our_data) 
+0

Просьба показать, как вы пробовали заявления 'try'. Это правильный способ сделать это. –

+0

'try' - правильное решение здесь. Покажите нам свой код, который его использовал. –

ответ

0

RTM

import sys 

try: 
    f = open('myfile.txt') 
    s = f.readline() 
    i = int(s.strip()) 
except IOError as e: 
    print "I/O error({0}): {1}".format(e.errno, e.strerror) 
except ValueError: 
    print "Could not convert data to an integer." 
except: 
    print "Unexpected error:", sys.exc_info()[0] 
    raise 
3

Добавить исключение:

data = [] 
print "Welcome to the program!" 
chosen = raw_input("Please choose a file name to use with the program:") 
try: 
    for line in open(chosen): 
     our_data = line.split(",") 

     data.append(our_data) 
except IOError: 
     print('File does not exist!') 
2

без использования исключения вы можете просто проверить, если файл существует и если не попросить его снова.

import os.path 

data = [] 
print "Welcome to the program!" 
chosen='not-a-file' 
while not os.path.isfile(chosen): 
    if chosen != 'not-a-file': 
     print("File does not exist!") 
    chosen = raw_input("Please choose a file name to use with the program:") 
for line in open(chosen): 
    our_data = line.split(",") 

    data.append(our_data) 

 Смежные вопросы

  • Нет связанных вопросов^_^