Открытие файлов с помощью try-exc - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно создать функцию с именем open_file(message), которая предлагает пользователю многократно вводить имя файла, пока не будет открыто правильное имя.Если имя не введено (пустая строка), файл по умолчанию должен быть файлом с именем pass.txt.

. Я попытался использовать цикл while с методом try и except.Я не совсем понимаю, как определить функцию.

def open_file(message):
    '''Put your docstring here'''

    filename = input("Enter the name of the file: ")
    while True:
        if filename == "" or filename == " ":
            filename = "pass.txt"
            fileopen = open("pass.txt", "r")
            break
        else:
            try:
                fileopen = open(filename, "r")
                break
            except FileNotFoundError:
                print("file not found, try again.")
                print(filename)  
    return fileopen

Ожидаемый результат - открыть введенное пользователем имя файла или открыть файл по умолчанию, при этом неоднократно запрашивая правильное имя файла, если введенное имя файла не может бытьнайден или открыт.

1 Ответ

1 голос
/ 06 апреля 2019

Переместите оператор ввода внутрь цикла while

Редактировать: удалить параметр функции "message", если он вам не нужен

def open_file():
    '''Put your docstring here'''

    while True:
        filename = input("Enter the name of the file: ")
        if filename == "" or filename == " ":
            filename = "pass.txt"
            fileopen = open("pass.txt", "r")
            break
        else:
            try:
                fileopen = open(filename, "r")
                break
            except FileNotFoundError:
                print("file not found, try again.")
                print(filename)  
    return fileopen
...