当我运行parsePlotSens.py -s bw hehe
时,它说hehe
是一个无法识别的参数。但是,如果我运行parsePlotSens.py hehe -s bw
,就可以了。理想情况下,我希望对这两种情况都有效。
有什么建议吗?以下是我的代码:
if __name__ == '__main__' :
parser = argparse.ArgumentParser(prog='parsePlotSens');
parser.add_argument('-s', '--sort', nargs =1, action = 'store', choices = ['mcs', 'bw'], default='mcs', help=sorthelp)
parser.add_argument('filename', nargs ='+', action = 'store')
option = parser.parse_args(sys.argv)
此外,作为对unutbu答案的补充,以这种方式将参数存储在字典中可以简化测试:
打印字典:
比如:
你可以通过允许未知参数来解决这个问题
替换
与
不要将
sys.argv
作为参数传递给parse_args
。只是使用如果您确实将
sys.argv
传递给parse_args
,则脚本本身的路径或名称是sys.argv
中的第一项,因此成为option.filename
的值。然后hehe
变成一个未知参数。如果省略
sys.argv
,则parse_args
按预期解析sys.argv
。相关问题 更多 >
编程相关推荐