2015-07-04 2 views
0
menu = {} 
menu['1']="1" 
menu['2']="2" 
menu['3']="3" 
while True: 
    options=menu.keys() 
    options.sort() 
    for entry in options: 
     print (entry, menu[entry]) 

    selection = input('Please Select:') 

    if selection =='1': 
     file = open("1.txt")  
    elif selection == '2': 
     file = open("2.txt")  
    elif selection == '3': 
     file = open("3.txt")  

привет, я хотел бы иметь возможность выбрать конкретный текстовый файл для открытия. Так скажите, если введен «1», что текстовый файл открывается и так далее.Как выбрать, чтобы открыть текстовый файл

+2

Необходимо добавить несколько тегов, которые относятся к технологии, с которой вы работаете. –

+0

Что не так с вашим решением? – wwii

ответ

0

Это приведет к выбору пользователя в открываемую строку.

menu = {} 
menu['1']="1" 
menu['2']="2" 
menu['3']="3" 
while True: 
    options=menu.keys() 
    options.sort() 
    for entry in options: 
     print (entry, menu[entry]) 

    selection = input('Please Select:') 
    file = open("{}.txt".format(selection)) 
0

Вы должны быть в состоянии предварять ввод в строку имени файла:

selection = input('Please Select:') 
file = open(selection + ".txt") 

Это может быть небезопасно, хотя, как пользователь может указать свое собственное имя файла.

Вы можете использовать HashMap вместо так что это текст предваряется .txt, строки никогда не будет ничего, кроме того, что у вас есть в списке:

selection = input('Please Select:') 
file = open(menu[selection] + ".txt") 
0

Не знаю, как подходят значения Dict в него, но вы можете использовать str.format, чтобы открыть файл, если они пронумерованы:

menu = {'1': "1", '2': "2", '3': "3"} 
options = sorted(options.items()) 
while True: 
    for entry, v in options: 
     print (entry, v) 
     selection = input('Please Select:') 
     if selection in menu: 
      break 
     print("Invalid choice") 

with open("{}.txt".format(selection)) as f: 
     ... 

Если вы на самом деле, используя значения Dict просто проверить, если выбор действителен т.е. в ключах Dict, а затем открыть с помощью значения:

menu = {'1': "1.txt", '2': "2.txt", '3': "3.txt"} 
options = sorted(options.items()) 
while True: 
    for entry, v in options: 
     print (entry, v) 
     selection = input('Please Select:') 
     if selection in menu: 
      break 
     print("Invalid choice") 
with open(menu[selection]) as f: 
       ... 

Если вы используете python3, которые вы должны казаться быть, вы не можете назвать сортировку по dict.keys, как .keys() возвращает объект dictview не список опций так = sorted(options.items()) будет на самом деле дать вам отсортированный список элементы, которые вы можете распаковать в цикле for.

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