如何使用选择性结构调用基于 argparse 的函数?
Posted
技术标签:
【中文标题】如何使用选择性结构调用基于 argparse 的函数?【英文标题】:How to call function based on argparse using selective structure? 【发布时间】:2019-11-17 01:07:18 【问题描述】:我是 python 新手,我想知道如何在选择性结构上调用基于 argparse 的函数
我试过这个功能
def parseArgument(abv, name, hdescriptop, isrequired):
parser=argparse.ArgumentParser()
parser.add_argument(abv,
name,
help=hdescription,
required=isrequired,
action="store_true",
)
args=parser.parse_args()
return args
parseArgument("-y", "--humedity", "Calculate humedity", False)
if args.cycle:
print("DPV cycle: ", DPV(w, 0, list_DPV_CYCLE, count_NC))
#elif args.moredata:
# print(more data)
*提示:无需知道 DPV 是什么
我希望当我在终端上运行 python 脚本并编写
python nameofthescript.py -y
,获取被调用函数 parseArgument() 具有选择性结构
【问题讨论】:
使用store_true
时不要设置required
参数。 parseArgument
返回一个 args
变量;调用代码应该保存它;例如..args = parseArgument(...)
。调试时添加print(args)
。为什么您期望 args.circle
属性?您没有定义 circle
参数。
@hpaulj 你是对的。 args.cicle
在我使用时为我工作,但没有使其成为函数parser.add_argument('-c','--cycle', action="store_true", help="show cycle data")
【参考方案1】:
跟进我的评论:
In [50]: def parseArgument(argv, abv, name, hdes):
...: parser=argparse.ArgumentParser()
...: parser.add_argument(abv,
...: name,
...: help=hdes,
...: action="store_true",
...: )
...: args=parser.parse_args(argv)
...: return args
...:
...: args = parseArgument([], "-y", "--humedity", "Calculate humedity")
In [51]: args
Out[51]: Namespace(humedity=False)
In [52]: args.humedity
Out[52]: False
测试不同的命令行:
In [53]: args = parseArgument(['-y'], "-y", "--humedity", "Calculate humedity")
In [54]: args
Out[54]: Namespace(humedity=True)
In [55]: args.humedity
Out[55]: True
【讨论】:
以上是关于如何使用选择性结构调用基于 argparse 的函数?的主要内容,如果未能解决你的问题,请参考以下文章
为啥直接调用 Python 脚本时 argparse 无法识别参数?