【发布时间】:2016-11-18 20:18:32
【问题描述】:
有没有办法使用 argparse 将 -- 作为值传递给 Python 程序而不使用等号 (=)?
我添加到 argparser 的命令行参数定义如下:
parser.add_argument('--myarg', help="my arg description")
你会在这样的程序中使用这个参数:
python myprogram.py --myarg value123
有没有办法用 -- 作为值而不是 'value123' 来运行这个程序?
即
python myprogram.py --myarg --
【问题讨论】:
-
如果动作是
store_true,则选项不带任何参数。 -
即使使用等号,
--myarg=--似乎也被视为与--myarg --相同。 -
它产生
Namespace(myarg=[])。这使解析器感到困惑。坚持使用--作为分隔符,不要试图混淆argparse或您的用户。为什么需要将此字符串视为参数? -
--myarg=-- 工作正常。然而,在我的用例中,Java 命令调度程序启动了一个 python 命令行子进程,在参数/值对之间使用空格而不是等号。我不打算将 -- 作为参数,而是作为 --myarg 的值。这是特定用例的要求。
-
与“--”相关的错误/问题:bugs.python.org/issue13922bugs.python.org/issue14364