命令行神器之argparse使用筆記

示例

廢話很少說直接給例子:python

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]}")

輸出結果:spa

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

簡化代碼

通常而言argparse都是寫在main.py裏的,可是有時參數設置有不少,main.py就顯得很臃腫,因此能夠考慮將參數設置單獨寫在一個文件裏。示例以下:code

文件結構ip

Project_name
|____main.py
|____config.py

config.pyit

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.pyio

from config import parsers

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

輸出結果和上面的同樣同樣的。class



MARSGGBO原創




2019-3-12

相關文章
相關標籤/搜索