命令行神器之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]}")
输出结果和上面的一样一样的。