是否可以在函数中嵌入 argsparse 解析器?
Is it possible to embed an argsparse parser in a function?
我这样定义一个 argsparse
对象:
parser = argparse.ArgumentParser(description='{desc}', formatter_class=argparse.ArgumentDefaultsHelpFormatter)\
.format(desc=description)
然后我添加如下参数:
parser.add_argument("--config", "-c", help='config',
default='dbConf').format(dbConf=dbConfig)
由于我在很多脚本中使用了这两行,所以我想将它们嵌入到一个函数中。
但是,据我了解,parser.add_argument()
会监听命令行。
是否可以将这些行嵌入到函数中?
Is it possible to embed these lines into a function?
是的。 add_argument
根本不与命令行交互 ,但即使这样做也没什么区别。
argparse
与 CLI 输入交互的一位是 the parse_args
method,默认情况下它所做的是访问全局 sys.argv
属性并对其进行处理。我默认写 因为你也可以提供一个字符串列表作为第一个参数,它会处理它(如果你点击 link 你会看到官方文档这样做是为了在示例中演示各种内容)。
所以是的,您可以拥有一个创建 ArgumentParser 并开始配置它的函数,然后 returns 它进行更多配置,最后,解析参数。
我这样定义一个 argsparse
对象:
parser = argparse.ArgumentParser(description='{desc}', formatter_class=argparse.ArgumentDefaultsHelpFormatter)\
.format(desc=description)
然后我添加如下参数:
parser.add_argument("--config", "-c", help='config',
default='dbConf').format(dbConf=dbConfig)
由于我在很多脚本中使用了这两行,所以我想将它们嵌入到一个函数中。
但是,据我了解,parser.add_argument()
会监听命令行。
是否可以将这些行嵌入到函数中?
Is it possible to embed these lines into a function?
是的。 add_argument
根本不与命令行交互 ,但即使这样做也没什么区别。
argparse
与 CLI 输入交互的一位是 the parse_args
method,默认情况下它所做的是访问全局 sys.argv
属性并对其进行处理。我默认写 因为你也可以提供一个字符串列表作为第一个参数,它会处理它(如果你点击 link 你会看到官方文档这样做是为了在示例中演示各种内容)。
所以是的,您可以拥有一个创建 ArgumentParser 并开始配置它的函数,然后 returns 它进行更多配置,最后,解析参数。