【问题标题】:equals sign in Python's argumentPython参数中的等号
【发布时间】:2013-01-12 02:26:22
【问题描述】:

我希望能够通过以下方式从 shell 命令行启动 python 脚本:

python script_name -temp=value1 -press=value2

我是这样写的:

#!/usr/bin/python

import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("temp", help="specify the temperature [K]", type=float)
parser.add_argument("press", help="specify the pressure [Pa]", type=float)

args = parser.parse_args()
temp = args.temp
press = args.press
print temp
print press

输入可以是:

python script_name value1 value2

如何才能以 -arg=value 的方式输入值?

【问题讨论】:

    标签: python syntax python-2.7 arguments


    【解决方案1】:

    使用parser.add_argument("--temp", ...)

    argparser 手册中有很好的例子:

    http://docs.python.org/2.7/library/argparse.html

    编辑:

    对于以 - 开头的参数,只有模式 -argument VALUE 有效。 这也适用于以-- 开头的参数,但在这里您也可以使用模式--argument=VALUE

    【讨论】:

    • # 对我不起作用 import argparse vmFullParser = argparse.ArgumentParser() vmFullParser.add_argument('--domain.vmfull') value = "-domain.vmfull=\"VM-1, VM-2\"" args, _ = vmFullParser.parse_known_args(value) print(args) # 想法?
    【解决方案2】:

    当配置为接受“-argument VALUE”形式的参数时,argparse 也会自动接受“-argument=VALUE”形式的参数

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2017-08-18
      • 2022-06-29
      • 2017-06-16
      • 2014-03-26
      • 2011-03-01
      • 1970-01-01
      • 2017-01-05
      • 2017-07-19
      相关资源
      最近更新 更多