我一直在各地搜索,并没有想到如何做到这一点。基本上我正在尝试设置一个简单的CLI,在调用函数内的任何给定时间按下转义按钮将带我回到菜单()。不知道这是多么复杂,因为我已经尝试了在这些板上发布的几个解决方案/变体,但这些都没有对我有用。想知道是否有人能指出我正确的方向。非常感激!
主循环基本上调用所有函数,如下所示:
if __name__=='__main__':
while True:
command = raw_input("> ")
if command.lower() == 'exit':
quit()
continue
elif command.lower() == 'help':
menu()
continue
elif command.lower() == 'show':
show()
continue
elif command.lower() == 'find':
finder()
continue
else:
print("Not a valid command.")
一个例子是如果我在循环期间调用finder()函数并且我有以下内容:
def finder():
q = raw_input("Search for q: ")
for row in open("filename.csv"):
if q in row:
print row,
当输入询问q时,是否可以触发转义键将我带到另一个函数(如menu())?理想情况下,我希望转义代码存在于函数之外,而不是在主循环中已存在的每个函数中创建一个参数。我不知道是否有一种简单的方法可以实现这一目标。
答案 0 :(得分:0)
将您的电话转接至finder()
:
try:
finder()
except KeyboardInterrupt:
pass
如果你在finder()期间按ctrl-c,这将会取消查找器并继续在调用它的位置。
此外,您的条件中的所有continue
都是不必要的,可以删除。 while-loop
除非明确告知,或者条件发生变化,否则不会中断。