python命令行参数传递
本文介绍python的两种参数传递方式,第1种为sys的参数传递,第2种为argparse的参数传递
1. 使用sys
的sys.argv
来获取命令行参数
import sys
print (sys.argv)
python debug.py para1 para2
['debug.py', 'para1', 'para2']
可以看到传入了参数,要使用具体参数的时候得我们自己去解析、识别
2. 使用parser.add_argument()
方法传递参数
parser.add_argument('--para--name', type=int, default=72, help='the name of parameter.')
其中para--name
为参数名,type
为其类型,default
为默认值
在不知使用方法时可用 -h
查看help说明
使用例子如下:
import argparse
parser = argparse.ArgumentParser(description='para transfer')
parser.add_argument('--para1', action='store_true', default=False, help='para1 -> bool type.')
parser.add_argument('--para2', type=int, default=10, help='para2 -> int type.')
parser.add_argument('--para3', type=str, default="hello", help='para3 -> str type.')
args = parser.parse_args()
print(args)
命令行参数传递
- 使用
-h
查看帮助
python debug.py -h
usage: debug.py [-h] [--para1] [--para2 PARA2] [--para3 PARA3]
para transfer
optional arguments:
-h, --help show this help message and exit
--para1 para1 -> bool type.
--para2 PARA2 para2 -> int type.
--para3 PARA3 para3 -> str type.
- 使用
--具体参数名
传递参数
python debug.py --para2 100
Namespace(para1=False, para2=100, para3='hello')
可以看到参数2传值成功
-
action='store_true'
的说明
无传参时为默认,有传参时为True
python debug.py --para1
Namespace(para1=True, para2=10, para3='hello')
可以看到参数1有传递时为True
在使用具体参数时只需args.参数名
即可,如:args.para1