argparse を使用しようとしていますが、何らかの理由で位置パラメータをコマンド ラインの最初に指定する必要があるという問題が引き続き発生します。ファイル名のリストなので、ポジショナルを最後にしたいです。
self.parser = ArgumentParser(description=program_license,
formatter_class=RawDescriptionHelpFormatter,
conflict_handler='resolve')
self.parser.add_argument('-V', '--version',
action='version',
version=program_version_message)
self.parser.add_argument('--logfile', action='store',
dest='logfile', default='daddyvision.log')
self.parser.add_argument('prog', help=SUPPRESS, nargs=1)
self.parser.add_argument('library', metavar="library", nargs='*')
group_loglvl = self.parser.add_mutually_exclusive_group()
group_loglvl.add_argument("--verbose", dest="loglevel",
action="store_const", const="VERBOSE",
default='INFO')
group_loglvl.add_argument("--debug", dest="loglevel",
action="store_const", const="DEBUG")
group_loglvl.add_argument("--trace", dest="loglevel",
action="store_const", const="TRACE")
group_loglvl.add_argument("--quiet", dest="loglevel",
action="store_const", const="WARNING")
group_loglvl.add_argument("--errors", dest="loglevel",
action="store_const", const="ERROR")
args = self.parser.parse_args(arg)
コマンドラインが次の場合: pgm --error filename 「エラー: 認識できない引数: ファイル名」が表示されます
コマンド行が pgm filename --error の場合、エラーなしで動作します。
私は何を間違っていますか。私が読んだすべてのことから、ポジショナルが最初または最後に来る可能性があると私は信じています。Python 2.7 環境。
位置を必要とする場合 (nargs='+') は機能しますが、parm はオプションです。