1

我正在用 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,但如果输入的是“这是一个句子”,则应该执行 functionTwo。

最好的方法是什么?

4

2 回答 2

1

使用os.path.isfile

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

此外,您可能想使用raw_input而不是input.

于 2013-09-15T23:52:57.630 回答
-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]()
于 2013-09-15T23:44:15.823 回答