2011-08-26 7 views
1

私は私のプログラムこの方法を使用したい:pythonScript -fファイル名Python:どのようにargparseの例外を処理するには?

をしかし、私は-f忘れてしまった場合、私はまだファイル名を取得したいです。

だから私は、この「pythonScriptファイル名」も働きたい - 私はこれは簡単でなければなりません知っている

(>私はargs.fileNameからまたは例外を処理からファイル名を取得することができます)、私は見つけることができませんそれを行う方法。誰でも私を助けることができますか?ありがとう

+0

これは期待通りです。 ' - *'はフラグ、*オプション*は必須ではありません。加えて、あなたはそれが必須であるとは言いませんでした。まったく反対に、あなたはデフォルト値を提供しました。 – delnan

+0

ああ、私が-fを忘れた場合でもファイル名を取得したいということです。おかげで申し訳ありませんが、 – TMS

答えて

3

-fが必要な場合は、argparseでそのようにすることができます。単にadd_argument関数の中に "required = True"を含めてください。

必要なオプションが矛盾していることに注意してください。必要なオプションを作ることは勧められませんが、時には役立つこともあります。オプションが指定されていない場合、宛先はNone値のままです(または、デフォルト値を割り当てられます。例ではNoneです)。

編集:ちょうどあなたの編集を見て、私はあなたが今尋ねていることを理解しています。 optparseは、これを単純なIMOにします。 argparseを使った定位置引数のようですが、add_argumentを使う必要があります。

argparseにはあなたのための簡単な方法はありません。あなたは、次のと少し創造的にそれをシミュレートすることができます与えられたファイルのオプションがあるかどう

parser = argparse.ArgumentParser() 
parser.add_argument('file', nargs='?') 
parser.add_argument('-f', dest='file_opt') 
args = parser.parse_args() 
if args.file_opt: 
    args.file = args.file_opt 

は基本的に、それは位置引数を上書きします。

+0

ありがとうございますが、私は実際に-fをオプションにしたいのですが、私の更新された質問をご覧ください。 – TMS

+0

ありがとう、それは動作します – TMS

関連する問題