考虑以下脚本:
import argparse
parser1 = argparse.ArgumentParser()
parser1.add_argument('-a')
args1 = parser1.parse_args()
parser2 = argparse.ArgumentParser()
parser2.add_argument('-b')
args2 = parser2.parse_args()
我有几个问题:
- parse_args 是一次性方法还是有办法在添加新参数之前清除参数?(例如类似的东西
args1.clear()
orparser1.clear()
) - 这个脚本的结果是不可用的。尽管此脚本接受
-a
参数,但它不接受 'a' 的任何值。它也不接受任何-b
论据。有什么方法可以使任何论点真正起作用吗? - 这是我的实际情况:我有 2 个脚本。两者都导入具有初始化代码(加载配置文件,创建记录器等)的相同文件,我们将其称为 init.py 这个 init.py 文件也只解析参数,因为它需要一个值。问题是我还需要其中一个脚本来接受其他参数。由于 init.py 用一个参数做某事,我不能等待 parse_args。我怎样才能让它工作?
编辑:
这是我的脚本的输出:
[提示]# python2.7 myscript.py -a
用法:a.py [-h] [-a A]
myscript.py:错误:参数-a:预期一个参数
[提示]# python2.7 myscript.py -a 1
命名空间(a='1')
用法:a.py [-h] [-b B]
myscript.py:错误:无法识别的参数:-a 1