python - 提取函数中命令行参数的名称

标签 python command-line-arguments argparse

我正在使用 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。

最佳答案

一种方法是重写您的 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 建议使用 argparsetype 参数更好。

关于python - 提取函数中命令行参数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24209378/

相关文章:

python - Google 搜索 API - 仅返回 4 个结果

python - 读取 tarfile 内的大文件头 (~9GB),无需完全提取

Python argparse : How to get simple parsing behavior?

Python argparse : Is there a way to print help for only a specific parameter?

python - 避免在 numpy.where() 中被零除

python - 无法在没有 .NET Azure Python Function App v2 的情况下创建函数

java - 指定Java中的默认文件编码

python - parse_args 命名空间中不包含 None 值

c++ - 代码 4 : file as command argument

Python3 : Enter regex pattern from command line