我正在用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。
最好的方法是什么?
使用 os.path.isfile
:
if os.path.isfile(input_x):
functionOne(open(input_x))
else:
functionTwo(input_x)
此外,您可能希望使用raw_input
而不是input
。
函数指针使用起来非常简单。试试这个:
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]()