Python - 根据用户的输入运行不同的函数

时间:2013-09-15 23:35:24

标签: python user-input

我正在用Python创建一个程序,它将根据用户输入的内容执行两个不同的任务。如果用户将输入要打开的文本文件的名称,将执行功能#1,但如果用户将输入一个句子(以字符串的形式),则将执行功能#2。

我唯一能想到的是做一个try: except:,其中一个函数会尝试打开一个文件,如果失败,它会假设用户输入了一个句子。但是这不是最好的方法,因为用户可以尝试打开一个不存在的文件,该文件将移动到except并将文件名称视为句子。

def main:
    input_x = input("Enter name of the file or type in your sentence")
    try:
        list_y = open(list_x, "r")
        functionOne(list_y)
    except:
        functionTwo(input_x)

因此,如果用户输入类似myTextFile.txt的内容,则应执行functionOne,但如果输入为“This is a sentence”,则应执行functionTwo。

最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

使用os.path.isfile

if os.path.isfile(input_x):
    functionOne(open(input_x))
else:
    functionTwo(input_x)

此外,您可能希望使用raw_input代替input

答案 1 :(得分:-1)

函数指针非常简单易用。试试这个:

def function_one(list):
    pass

def function_one(list):
    pass

function_dict = {'myTextFile.txt': function_one, 
    'This is a sentence': function_two }

user_input = input("Enter name of the file or type in your sentence")

function_dict[user_input]()