2017-05-11 15 views
1

argthonを使ってすべての引数を解析するpythonスクリプト以上の引数を渡すことができるのだろうか?例えば:私は常にエラーメッセージが表示されます>記号で
python foo.py -a bob -d >= 12引数を "> ="でargparseに渡す

は:foo.py: error: argument -d/--min number : expected at least one argument

有効な入力は、「=3または>=3

おかげ
アレクシス

+1

引用符で囲むことはできませんか? '-d"> = 12 "' –

+0

のようになります。これはかなり面倒です。スクリプトは別のアプリから呼び出されているので、引数の前後に引用符を追加することはかなり難しいです。 – alexis

答えて

1

問題ISNだろうどちらかt argparse、それは>がコマンドラインで特別な意味を持つことです(ファイルへの出力のチャネリング)。

python foo.py -a bob -d '>=' 12 

か:あなたは値がシェルでプレーンな文字列として扱われていることを確認する必要があります(。>=12か二つの引数または1つことになっているに応じて)

python foo.py -a bob -d '>= 12' 

+0

引用符を付けずにこれを行う方法はありますか?スクリプトは別のアプリケーションから呼び出されていますか? – alexis

+1

あなたのアプリが、 "stdoutをファイルにリダイレクトする"ことを望まずに、裸の '>'を含むシェルコマンドを実行している場合、間違っています。普通の文字 ">"の意味を持つには、引用符で囲む必要があります。 – deceze

+0

doh!あなたの絶対に正しい、それに感謝します。パイプについて完全に忘れたので、デフォルトで引用符を追加する – alexis

関連する問題