-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
は基本的に、それは位置引数を上書きします。
これは期待通りです。 ' - *'はフラグ、*オプション*は必須ではありません。加えて、あなたはそれが必須であるとは言いませんでした。まったく反対に、あなたはデフォルト値を提供しました。 – delnan
ああ、私が-fを忘れた場合でもファイル名を取得したいということです。おかげで申し訳ありませんが、 – TMS