меню из разных python файлов

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

while True:
    print('\n\n1. Первый код\n2. Второй код\n3. Третий код\n4. Четвертый код\n5. Выход из программы\n')
    menu_choose = int(input("Ввод цифры : "))

if menu_choose == 1:
    # код из первого файла.py
    print('Запустился первый код')

elif menu_choose == 2:
    # код из второго файла.py
    print('Запустился второй код')
    

elif menu_choose == 3:
    # код из третьего файла.py
    print('Запустился третий код')
    

elif menu_choose == 4:
    # код из четвертого файла.py
    print('Запустился четвертый код')
    

else:
    print('Программа завершилась')
    break

Подскажите, как правильно оформлять подобное? Так, как в примере моем (после каждого if, вставлять код с другого файла , и тогда все будет в одном .py) Или как-то можно импортировать просто код с другого исходника, если так лучше, то как правильно оформлять код , чтобы он импортировался, только по условию из меню.

while True:
print('\n\n1. Первый код\n2. Второй код\n3. Третий код\n4. Четвертый код\n5. Выход из программы\n')
menu_choose = int(input("Ввод цифры : "))

if menu_choose == 1:
    import first
    print('Мы импортировали код из first.py')

Или 'может' есть модули специальные. Спасибо!


Ответы (1 шт):

Автор решения: w4sQ

Импортируете функции из нужных файлов и вписываете в словарь.

from file1 import test

menu_dict ={
    1: test
    #2:  2 функция
    #3:  3 функция
    #4:  4 функция
    #5:  5 функция
}

while True:
    print('\n\n1. Первый код\n2. Второй код\n3. Третий код\n4. Четвертый код\n5. Выход из программы\n')
    menu_choose = int(input("Ввод цифры : "))
    if menu_choose in menu_dict.keys():
        print(f"Запуск {menu_choose} код")
        menu_dict[menu_choose]()
    else:
        raise ValueError("Этого меню нет!")
    print('Программа завершилась')
→ Ссылка