如何解决如何检查是否只有一个 argparse 参数存在
和代码一样,parser.add_argument 有两个 --date 和 --type。如果 --type 存在,我想使用另一个函数。如何检查 --type 的存在? 我试过了,但失败了
parser = argparse.ArgumentParser()
parser.add_argument('--date',default=str(startDate))
parser.add_argument('--type',required=False)
args = parser.parse_args()
if len(args.type) > 0:
dataFrame = spDataFrame[nospDataFrame['Type'] == args.type].reset_index(drop=True)
else:
campDataframe = sp_camp_mapping(startDate,endDate,keyword,driver,filePath)
sp_mapping(campDataframe,startDate)
ERROR:None type has no len
解决方法
如果未传递 --type
参数,则 args 中的键 type
的值为 None
并且:
len(None)
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.2.1\plugins\python-ce\helpers\pydev\_pydevd_bundle\pydevd_exec2.py",line 3,in Exec
exec(exp,global_vars,local_vars)
File "<input>",line 1,in <module>
TypeError: object of type 'NoneType' has no len()
你可以做的是直接检查 args.type
的值:
import argparse
startDate = '20210209'
parser = argparse.ArgumentParser()
parser.add_argument('--date',default=str(startDate))
parser.add_argument('--type',required=False)
args = parser.parse_args()
if args.type:
print("Type parameter was passed: {}".format(args.type))
else:
print("Type parameter wasn't passed: {}".format(args.type))
注意:if args.type
相当于 if args.type is not None:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。