Python argparse は認識されない引数を無視します 質問する

Python argparse は認識されない引数を無視します 質問する

Optparse の古いバージョンでは、認識されない引数はすべて無視して処理を続行します。ほとんどの場合、これは理想的ではないため、argparse で変更されました。ただし、認識されない引数を無視して、指定した引数を解析したい状況もいくつかあります。

例えば:

parser = argparse.ArgumentParser()
parser.add_argument('--foo', dest="foo")
parser.parse_args()

$python myscript.py --foo 1 --bar 2
error: unrecognized arguments: --bar

これを上書きする方法はありますか?

ベストアンサー1

交換する

args = parser.parse_args()

args, unknown = parser.parse_known_args()

例えば、

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
args, unknown = parser.parse_known_args(['--foo', 'BAR', 'spam'])
print(args)
# Namespace(foo='BAR')
print(unknown)
# ['spam']

おすすめ記事