1. ホーム
  2. パイソン

[解決済み】Python argparseが認識できない引数を無視する件

2022-04-01 12:51:51

質問

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

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

解決方法は?

交換する

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']