1.问题引入
如下图,在python中我们执行py文件命令,可以使用 python xx.py 当我们携带其他参数时,可以使用sys.argv打印传入的参数,本身xx.py文件名也是传入的参数。其实,本身我们也可以使用图中的方式去解析传入的数据,但是当传入参数变得复杂,或者说便于管理的话,这种方式可能就不太方便了,因此也就需要使用到我们这里介绍的argparse模块。
2.专门处理命令行传入参数的库 —— argparse
import argparse
args = argparse.ArgumentParser(description='')
args.add_argument('--dataset', type=str, default='YAGO') # 数据集
args.add_argument('--time-stamp', type=int, default=1)
args.add_argument('--lr', type=float, default=0.001)
args.add_argument('--n-epochs', type=int, default=30)
args.add_argument('--hidden-dim', type=int, default=200)
args.add_argument("--gpu", type=int, default=0,
help="gpu")
args.add_argument("--regularization", type=float, default=0.01,
help="regularization weight")
args.add_argument('--valid-epoch', type=int, default=5)
args.add_argument('--alpha', type=float, default=0.5)
args.add_argument('--batch-size', type=int, default=1024)
args.add_argument('--raw', action='store_true', default=False) # action参数
args.add_argument('--counts', type=int, default=4)
args.add_argument('--entity', type=str, default='subject') # default设置默认参数值
args = args.parse_args()
print(args)
print(args.lr)
3.argparse三步构造法
(1)构造解析器–>argparse.ArgumentParser()
(2) 添加参数–>args.add_argument()
(3) 解析参数–>args.parse_args()
argparse可设置可选参数、不可选参数,主要是处理和管理传入的参数,其实本质上argparse也是用sys.argv进行处理。
参考视频1
参考视频2