私はどこからでも検索していますが、これを行う方法はわかりません。基本的に私は簡単な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.")
私はループ中にファインダー()関数を呼び出して、私は次した場合の例は次のようになります。
def finder():
q = raw_input("Search for q: ")
for row in open("filename.csv"):
if q in row:
print row,
エスケープキーをトリガして、入力がqを求めている間に私をmenu()のような別の機能に連れて行くことは可能でしょうか?理想的には、私はエスケープコードが、メインループの内部に既に存在するすべての関数で引数を作成する代わりに、関数の外に存在することを望みます。これを達成する簡単な方法があるかどうかはわかりません。
'KeyboardInterrupt'で十分でしょうか?私。 ctrl-c –
私はそれが働くかどうかわかりませんが、強制的にプログラムを終了します。私は、プログラムを完全に閉じずに別の関数に戻る方法を探しています。しかし、それを行う方法があれば私はすべての耳です。 – Exempt