- 论坛徽章:
- 1
|
需求 :
我想写一个 test.py , 可以支持-p --host -c 等等这些参数的输入,数量可能去到10几个,然而这些参数不是所有都必须的 !
例如 : python test.py -p 33 --host 120 或者 python test.py -c 'ls' (只想说明,这个py和linux 的ls相类似)
我的代码如下 :
parser = argparse.ArgumentParser(usage = 'this is useful scripts !')
parser.add_argument('-p','--port',dest='port',help='connect port',nargs=1)
parser.add_argument('--host',dest='host',help='connect host')
parser.add_argument('-a',dest='action',help='action')
....(省略一下十几个)
args = parser.parse_args()
for key , value in args.__dict__.items(): # 遍历得到Namespace的参数,和传入的值
if value is 'None': # 想要跳过没有设置的参数,可是没成功
print 'none'
else :
if key == 'port':
print 'your port is %s' %value
elif key == 'host':
print 'your host is %s' %value
问题 :
1.大家一般怎样利用argparse传入的参数?
2.如上面所说,我的参数可能多达十几个,但是用户可能只用其中一个,我怎样才能快速知道他用的哪个参数?(我上面的代码不能实现,不能跳过值None的参数) |
|