pathlib
参考 https://blog.csdn.net/triagen/article/details/74623440
from pathlib import Path # 导入Path类
root = Path('/home/xxx/') # 创建Path对象
print(p) # /home/xxx
print(p.parent) # /home
b = p / ('test' if mode=='test' else 'train')
print(b) # /home/xxx/test
还有其它的用法,详见前面参考链接。
argparse
用法:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('mode', choices=['train', 'validate', 'predict_valid', 'predict_test']))
parser.add_argument('run_root')
parser.add_argument('--model', default='resnet50')
parser.add_argument('--debug', action='store_true')
parser.add_argument('--limit', type=int)
parser.add_argument('--batch-size', type=int, default=64)
args = parser.parse_args()
解释:
- 前面的参数有两种形式,一种是带
--
的,表示可选参数,调用时可指定也可不指定,命令行里指定时需连参数名字一起写。不带--
的(如mode
和run_root
)参数是必须的,且命令行里不用写参数名字。
eg:
python xxx.py train /home/ --batch_size 32
choices
参数表示只能为后面给定的这几种取值,否则会报错。action='store_true'
参数表示如果命令行里没有指定该参数,则该参数取值为默认值(False),如果命令行里指定了该参数,则该参数为True(不用给该参数赋具体数值),例如:
python xxx.py train /home/ --debug
--limit
参数,如果不赋值,则默认为None,如果赋了具体值,则为具体数值。