1. sys.argv
import sys
param1 = sys.argv[1]
param2 = sys.argv[2]
print sys.argv
print param1
print param2
print type(param1)
print type(param2)
2. argparse
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--train', required=True, help='path to data')
parser.add_argument('--lr', type=float, default=0.01, help='learning rate')
# 解析参数
args = parser.parse_args()
print("=======", args.train)
print(args.lr)
输出
$ python testargv.py --train haha --lr 000001
$ ======= haha
$ 1.0
ArgumentParser
类创建时的参数如下:
prog - 程序的名字(默认:sys.argv[0])
usage - 描述程序用法的字符串(默认:从解析器的参数生成)
description - 参数帮助信息之前的文本(默认:空)
epilog - 参数帮助信息之后的文本(默认:空)
parents - ArgumentParser 对象的一个列表,这些对象的参数应该包括进去
formatter_class - 定制化帮助信息的类
prefix_chars - 可选参数的前缀字符集(默认:‘-‘)
fromfile_prefix_chars - 额外的参数应该读取的文件的前缀字符集(默认:None)
argument_default - 参数的全局默认值(默认:None)
conflict_handler - 解决冲突的可选参数的策略(通常没有必要)
add_help - 给解析器添加-h/–help 选项(默认:True)
add_argument
函数的参数如下:
name or flags - 选项字符串的名字或者列表,例如foo 或者-f, –foo。
action - 在命令行遇到该参数时采取的基本动作类型。
nargs - 应该读取的命令行参数数目。
const - 某些action和nargs选项要求的常数值。
default - 如果命令行中没有出现该参数时的默认值。
type - 命令行参数应该被转换成的类型。
choices - 参数可允许的值的一个容器。
required - 该命令行选项是否可以省略(只针对可选参数)。
help - 参数的简短描述。
metavar - 参数在帮助信息中的名字。
dest - 给parse_args()返回的对象要添加的属性名称。
网友评论