python——argparse模块的基本使用方法与基本模板

本文介绍了Python的argparse模块,用于处理命令行参数和选项。argparse简化了用户交互,允许开发者预设选项,限制用户输入,设置默认值等。通过示例代码展示了如何创建解析器,添加选项,以及如何获取用户输入。该模块对于提高应用的易用性和灵活性非常有帮助。
摘要由CSDN通过智能技术生成

最近在捣鼓机器学习的项目会经常碰到argparse模块,在这里进行一个简单的记录并简单介绍一下该模块的使用方法

1. argparse模块简介

无论是什么样的计算机项目都不会是仅仅为某一个人而专门开发的,甚至就算是属于某一个人的项目也不能够保证该用户的需求不会发生变化。当然,我们可以通过临时调整代码来使得其能够适应需求(“想起了恐怖的甲方!!”),但这样未免太麻烦。同时,为了方便模组或者应用的传播,作为开发者我们需要使非专业人士同样能够正确、方便地使用其需求的功能,而argparse模块正是为此而生。(补充一下,个人认为argparse模块也是为我们自身提供方便,在使用的过程中我们势必需要梳理该应用的实现流程与功能。
从人机交互的角度上考虑,一种普遍的方式是使用“read”方式来读取用户的需求,通过判断来改变应用的执行流程;这种方法较为简单,但是不可避免的问题时,用于用户输入所带来的巨大随机性,使得我们很难保证程序能够正常执行。那么我们能不能设计出来一种方式:就像做一份问卷,为了方便使用,同时保证结果满足需求,我们主动提供选线,用户只需要在对应的选项后“打勾”即可。个人认为argparse的思想正是如此。


2. 基本使用流程

导入模组:

import argparse

定义argparse对象:

parser = argparse.ArgumentParser(description="这里添加你对该份“问卷”的描述,起到向导作用。")

添加“选项”及描述:

parser.add_argument("--path", #这里指明题目的名称
                       type=str, # 指明数据类型
                       help="path to the training data", # 帮助信息,帮助用户理解
                       choices=["1", "2"], # 限定选项,只能在规定值中选择
                       default=os.path.dirname(__file__)) #设置默认值,设置了默认值的题目用户并非必填
                  
parser.add_argument("--png", # 该选项为特殊的“开关”选项,只要在运行程序是标记了 --png ,则说明该选项打开,对应的action将会执行,“store_true”表示的是保存为true。
                     help="if set, trains from raw KITTI png files (instead of jpgs)",
                     action="store_true")

用户填写:
注意:该步骤并非是在程序定义期间,而是发生在用户调用该应用时

python file_name.py --path /etc/tmp/??? --其他选项 ...

收取“问卷:”

options = parser.parse_args() # 调用.parse_args方法完成对问卷的解析
return options # 返回结果,结果以字典的形式保存

3. 模板代码

from __future__ import absolute_import, division, print_function

import os
import argparse

class Options:
    def __init__(self):
        self.parser = argparse.ArgumentParser(description="描述信息")

        # 添加选项及描述
        self.parser.add_argument("--path",
                                 type=str,
                                 help="path to the training data",
                                 default=os.path.dirname(__file__))
        self.parser.add_argument("--dir",
                                 type=str,
                                 help="log directory",
                                 default=os.path.join(os.path.expanduser("~"), "tmp"))
        # 其他选项

    def parse(self):
        self.options = self.parser.parse_args()
        return self.options
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值