2017-06-27 19 views
0

基本的には、楽しく実践するためのコマンドラインのPythonメニューを作成しました。スクリプトには多くの楽しい機能とコマンドがありますが、その中心は入力された文字列がオプションに対応しているかどうかを確認して実行する実際のコマンドラインです。私はifとelifを使ってコマンドをチェックしていますが、コマンドの欠点があります。Pythonコマンドの処理

elif cmdprompt == '--help': 
    print("\n" 
    self.help() 

上記のコードはユーザーの入力を受け取り、 '--help'の場合はその関数を実行します。ただし、ユーザーがスペースを含む文字列を入力した場合、無効なオプションとして認識されます。 "または"を使用すると効率が悪いように見えますが、多くのエリフで使用するとコードが壊れます。このコマンド処理をより柔軟にする方法はありますか?おそらく、ユーザーが最後に何らかのスペースを入れて "--help"を入力することを確認するだけのものかもしれません。

+5

おそらく[argparse](https://docs.python.org/3/library/argparse.html)の使用を検討する必要がありますか? – Xiobiq

+0

'string.trim()'を使うと、文字列の先頭と末尾のスペースを削除できます。 – Barmar

+0

@Polikdir彼はCLIの引数を処理していないメニューをやっています。 – Barmar

答えて

1

これは空白を排除する:

elif cmdprompt.strip() == '--help': 

代わりにあなたがこれを行うことができます:--helpが含まれて何もだけでなく、余分な空白にマッチします

elif '--help' in cmdprompt: 

しかし、注意を。