在很多论文的源码中,会有以下这种代码:
parser = argparse.ArgumentParser(description="Run NGCF.")
parser.add_argument('--weights_path', nargs='?', default='',help='Store model path.')
parser.add_argument('--data_path', nargs='?', default='Data/',help='Input data path.')
parser.add_argument('--proj_path', nargs='?', default='',help='Project path.')
parser.add_argument('--dataset', nargs='?', default='gowalla',help='Choose a dataset from {gowalla, yelp2018, amazon-book}')
parser.add_argument('--pretrain', type=int, default=0,help='0: No pretrain, -1: Pretrain with the learned embeddings, 1:Pretrain with stored models.')
parser.add_argument('--verbose', type=int, default=1,help='Interval of evaluation.')
parser.add_argument('--is_norm', type=int, default=1,help='Interval of evaluation.')
parser.add_argument('--epoch', type=int, default=1000,help='Number of epoch.')
args = parser.parse_args()
argparse 模块可以让人轻松编写用户友好的命令行接口。是 Python 内置的一个用于命令项选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。
import argparse # 导入模板
parser = argparse.ArgumentParser() # 创建parser
parser.add_argument() # 添加参数
args = parser.parse_args() # 参数解析
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
add_argument定义单个的命令行参数应当如何解析。每个形参都在下面有它自己更多的描述:
(注:nargs=’?’。如果可能的话,会从命令行中消耗一个参数,并产生一个单一项。如果当前没有命令行参数,则会产生 default 值。)
import argparse
parser = argparse.ArgumentParser(description="Run NGCF.")
parser.add_argument('--weights_path', nargs='?', default='',help='Store model path.')
parser.add_argument('--data_path', nargs='?', default='Data/',help='Input data path.')
parser.add_argument('--proj_path', nargs='?', default='',help='Project path.')
parser.add_argument('--dataset', nargs='?', default='gowalla',help='Choose a dataset from {gowalla, yelp2018, amazon-book}')
parser.add_argument('--pretrain', type=int, default=0,help='0: No pretrain, -1: Pretrain with the learned embeddings, 1:Pretrain with stored models.')
parser.add_argument('--verbose', type=int, default=1,help='Interval of evaluation.')
parser.add_argument('--is_norm', type=int, default=1,help='Interval of evaluation.')
parser.add_argument('--epoch', type=int, default=1000,help='Number of epoch.')
args = parser.parse_args()
print(args.--data_path)
print(args.--epoch)
输出:
Data/
1000
可选参数store_true,store_false
store_true 是指带触发action时为真,不触发则为假
parser.add_argument('-a', action='store_true', default=False)
#python test.py -a => a是true(触发)
#python test.py => a是false(无触发)