命令行神器之argparse使用笔记

示例

废话不多说直接给例子:

import argparse

parser = argparse.ArgumentParser(description='Imbalanced Dataset Example')
parser.add_argument('--data', metavar='DIR', default='./data/', help='path to dataset')
parser.add_argument('--no-sampler', action='store_true', default=False,
					help='disables imbalancedSampler')
parser.add_argument('--batch_size', type=int, default=42)
parser.add_argument('--lr', type=float, default=0.1, help='learning rate(default 0.1)')
args = parser.parse_args()

for key in args.__dict__:
	print(f"{key}:{args.__dict__[key]}")

输出结果:

data:./data/
no_sampler:False
batch_size:42
lr:0.1

简化代码

一般而言argparse都是写在main.py里的,但是有时参数设置有很多,main.py就显得很臃肿,所以可以考虑将参数设置单独写在一个文件里。示例如下:

文件结构

Project_name
|____main.py
|____config.py

config.py

import argparse

def parsers():
	parser = argparse.ArgumentParser(description='Imbalanced Dataset Example')
	parser.add_argument('--data', metavar='DIR', default='./data/', help='path to dataset')
	parser.add_argument('--no-sampler', action='store_true', default=False,
						help='disables imbalancedSampler')
	parser.add_argument('--batch_size', type=int, default=42)
	parser.add_argument('--lr', type=float, default=0.1, help='learning rate(default 0.1)')
	args = parser.parse_args()
	return args

main.py

from config import parsers

if __name__ == '__main__':
	args = parsers()
	for key in args.__dict__:
		print(f"{key}:{args.__dict__[key]}")

输出结果和上面的一样一样的。




微信公众号:AutoML机器学习
MARSGGBO原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com

2019-3-12



原文地址:https://www.cnblogs.com/marsggbo/p/10515240.html