python提供了多种命令行解析库
- sys.argv
- argparse库
sys.argv用法
import sys
print(sys.argv)
在命令行输入 python test.py 1 2 3
输出如下:
[‘test.py’, ‘1’, ‘2’, ‘3’]
总结:
- import sys后就可以使用sys.argv
- 命令行参数会被保存在sys.argv中
- sys.argv就是一个list
- sys.argv中的元素的数据类型都是字符串
argparse库的用法
#step1 导入库 import argparse #step2 初始化库 parse = argparse.ArgumentParser() #step3 增加参数 parse.add_argument(‘test0’) parse.add_argument(‘test1’) parse.add_argument(‘-v’,’—value’,’-l’,nargs=2) parse.add_argument(‘test2’) #step4 解析参数 args = parse.parse_args() print(args)
命令行输入:python test2.py a —value 2 3 d c
输出:Namespace(test0=’a’, test1=’d’, test2=’c’, value=[‘2’, ‘3’])
命令行输入:python test2.py a -v 2 3 d c
输出:Namespace(test0=’a’, test1=’d’, test2=’c’, value=[‘2’, ‘3’])
命令行输入:python test2.py a -l 2 3 d c
输出:Namespace(test0=’a’, test1=’d’, test2=’c’, value=[‘2’, ‘3’])
总结:
parse.add_argument允许两种方式的命令行参数
- 不指定参数
- 指定参数
1.parse.add_argument不指定参数的方式
- parse.add_argument(‘test0’)
- 在命令行中不需要指定参数,输入的参数会依次赋值给添加的参数
2.parse.add_argument指定参数的方式**
- parse.add_argument(‘-v’,’—value’,’-l’,nargs=2)
- 在参数名前必须加-,这种方式可以方便的用小写表示
- 可以有多个小写的表示,此时输入任何一个都可以
- 使用两个—,表示在程序中的参数名
使用举例:
parser.add_argument(‘—dataset_root’, default=’/usr/data’)
parser.add_argument(‘—start_iter’, default=0, type=int)
def str2bool(v):
return v.lower() in (“yes”, “true”, “t”, “1”)#返回的是True或者False
parser.add_argument(‘—visdom’, default=False, type=str2bool)
