一些python argparse使用问题:检索参数



有些问题是我在阅读文档和其他一些问题时无法弄清楚的。

1:我被"我如何实际检索参数"难住了,所以我环顾四周,有人建议使用__dict __函数像字典一样访问它。这是有效的,但这是唯一的方法吗?这似乎是一个相当常见的事情,但它似乎没有在任何地方明显的文档。如果我错过了,也许有人能指出来?它绝对不在最上面。

2: argparse是在2.7中引入的,但是有些人拒绝获得新版本的python,并继续坚持使用像2.5,2.6这样的旧版本,原因我不知道。我的解决方案是采取argparse模块,并把它放在我自己的脚本目录。这个方案有什么问题吗?

可以使用parse_args()函数检索参数。例如:

parser = argparse.ArgumentParser(description="Test")
parser.add_argument('command')
parameters = parser.parse_args()
cmd = parameters.command

回答你的第二个问题,不建议你这样做。仅仅添加模块是不够的,因为您可能会遇到依赖问题(例如,在内部,argparse可能需要只在2.7中可用的其他东西)。较旧的,但已弃用的版本是optparse.

Ad 1:检索值非常容易:

parser.add_argument('--some_arg', action='store')
parser.add_argument('--some_flag', action='store_true')
args = parser.parse_args()

现在可以使用args.some_argargs.some_flag访问这些值,如文档中所示。

Ad 2:由于argparse是在2.7中引入的,许多人为了向后兼容而坚持使用旧版本optparse,因为该模块可能不可用。语法是相当相等的。我的解决方案是尝试用argparse进行解析,并使用optparse作为回退。

最新更新