如果用户输入是目录中文件的名称,如何执行操作。蟒

时间:2016-01-05 21:26:03

标签: python python-3.4

我目前正在尝试创建一个用户可以创建数据集的程序,但是我很难弄清楚如何处理用户选择用户从要编辑或查看的文件列表中选择名称的方法。 以下是我如何显示他们可以选择的文件。如何轻松地允许他们选择任何一个可用文件而无需对每个文件进行硬编码?

available_files = os.listdir('./DSC_Saves/')
print(available_files)
user_input = input('File Name: ')

我想避免做的是:

if user_input == available_files[0]:
    #do action
elif user_input == available_files[1]:
    #do action 2
elif user_input == available_files[2]:
    #do action 3

1 个答案:

答案 0 :(得分:2)

如上所述,您可以通过在可用文件列表中使用onListChange: function(e) { console.log(e.sender.dataItem(e.sender.select())); } 来执行此操作,如下所示:

in

或者,为了便于输入,您可以向用户显示一个数字菜单,供您选择,如下所示:

available_files = os.listdir('./DSC_Saves/')
print(available_files)

while True:
    user_input = input('File name: ')

    if user_input in available_files:
        break

print("You have selected '{}'".format(user_input))

两个解决方案都会继续提示,直到输入有效的文件名。

例如,您可以看到以下输出:

available_files = os.listdir('./DSC_Saves/')

for index, file_name in enumerate(available_files, start=1):
    print('{:2} {}'.format(index, file_name))

while True:
    try:
        user_input = int(input('Please select a file number: '))

        if 1 <= user_input <= len(available_files):
            selected_file = available_files[user_input-1]
            break
    except ValueError as e:
        pass

print("You have selected '{}'".format(selected_file))