【问题标题】:Extract names of Command line parameter in a function提取函数中命令行参数的名称
【发布时间】:2014-08-04 06:03:56
【问题描述】:

我正在使用 ArgParse 在 Python 中提供命令行参数。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--quality", help="enter some quality limit")
args = parser.parse_args()
print "You gave quality = %s" % str(args.quality)

def is_number(s):
   try:
      val = int(s)
   except ValueError:
      print "That is not an int!"

is_number(args.quality)

我将它保存为 a.py 然后运行:

$python a.py --quality 10
You gave quality = 10

如果我们输入一些字符而不是数字,我想在函数“quality is not an int”内的打印语句中打印出参数名称“quality”。如何提取参数名称和在那里使用它。我还有一些命令行参数,所以我想要一个明确的错误说明哪个参数不是 int。

【问题讨论】:

  • add_argument 允许您指定输入的类型,只需添加type=int。这将引发错误,我认为您可以在异常处理程序中捕获该错误。
  • 谢谢 Ben。它运行良好。

标签: python command-line-arguments argparse


【解决方案1】:

一种方法是重写您的is_number 以将参数名称作为字符串。

def is_number(args, argname):
    try:
        int(getattr(args, argname))
    except ValueError:
        print argname, "is not an integer"

is_number(args, "quality")

但 Ben 建议使用 argparse 的 type 参数更好。

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 2021-10-16
    • 2021-08-04
    • 1970-01-01
    • 2021-08-25
    • 2020-12-30
    • 1970-01-01
    • 2018-12-15
    • 2017-02-21
    相关资源
    最近更新 更多