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

如果用户输入的是目录中的文件名,如何执行操作。python,python,python-3.4,Python,Python 3.4,我目前正在尝试制作一个用户可以创建数据集的程序,但是我很难理解如何处理用户从文件列表中选择一个名称进行编辑或查看。 下面是我如何显示他们可以选择的文件。我怎样才能轻松地让他们选择任何一个可用文件,而不必对每个文件进行硬编码 available_files = os.listdir('./DSC_Saves/') print(available_files) user_input = input('File Name: ') 我希望避免做以下事情: if user_input == availa

我目前正在尝试制作一个用户可以创建数据集的程序,但是我很难理解如何处理用户从文件列表中选择一个名称进行编辑或查看。 下面是我如何显示他们可以选择的文件。我怎样才能轻松地让他们选择任何一个可用文件,而不必对每个文件进行硬编码

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

如上所述,您可以使用可用文件列表中的
来执行此操作,如下所示:

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))
或者,为了便于键入,您可以向用户提供一个数字菜单,供其选择,如下所示:

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))

如果输入在可用的\u文件中,则打开it@SirParselot哦,是的。我完全忘了我能做到。我是Python的新手,这个项目让我有点紧张,所以我忘记了一些有价值的信息。谢谢。user_input=int(input('Which file(1、2等))-1我喜欢你的解决方案,但我也找到了一个,作为新手,这对我来说相当复杂。虽然我会把它弄得一团糟。