本文由腾讯云+社区自动同步,原文地址 https://cloud.tencent.com/developer/article/1540855
在使用argparse时发现无法传递bool型变量,无论命令行输入True还是False,解析出来之后都是True,代码如下
parser = argparse.ArgumentParser()
parser.add_argument(
‘–isTrain’,
help=’Do you want to train the network?’,
type=bool,
)
args = parser.parse_args()
my_bool = args.bool_arg
在搜索了一下后,发现有一种注册回调函数的方法比较好用,代码如下
def str2bool(v):
if v.lower() in ('yes', 'true', 't', 'y', '1'):
return True
elif v.lower() in ('no', 'false', 'f', 'n', '0'):
return False
else:
raise argparse.ArgumentTypeError('Unsupported value encountered.')
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument(
'--isTrain',
type= str2bool,
nargs = '?',
const = True,
help='If this is a train process?')
args, unparsed = parser.parse_known_args()
if args.isTrain == False:
isTrain = args.isTrain
tf.app.run(main=main)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有