python argparse的例子

    自己写的一个例子,留着忘记后再看。

if __name__ == "__main__":
    import argparse
    parser = argparse.ArgumentParser()
    parser = argparse.add_argument("-o",nargs=3)
    parser.add_argument("-u",nargs='+',help="user accounts with a space partition",required=True)
    parser.add_argument("-m",help="messages with string format,narg=1",required=True)
    args = parser.parse_args()
    print  args.u,args.m


### 使用 `argparse` 模块解析命令行参数 #### 创建 ArgumentParser 对象 要使用 `argparse` 解析命令行参数,首先需要创建一个 `ArgumentParser` 实例。这个对象会保存所有的命令行选项和参数的信息。 ```python import argparse parser = argparse.ArgumentParser(description='Process some integers.') ``` 此代码片段初始化了一个新的 `ArgumentParser` 对象,并设置了描述信息[^1]。 #### 添加参数 接着向该对象添加期望接收的命令行参数: ```python parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('--sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)') ``` 上述例子展示了两种类型的参数:位置参数(如 `'integers'`)以及可选参数(如 `--sum`)。对于每一个参数都可以指定其元数据名称 (`metavar`)、类型 (`type`) 和数量 (`nargs`) 等属性[^2]。 #### 解析参数 最后一步是从命令行读取这些参数并将其转换成 Python 数据结构: ```python args = parser.parse_args() print(args.accumulate(args.integers)) ``` 这段代码调用了 `parse_args()` 方法来收集传递给脚本的所有命令行输入,并按照之前定义的方式解释它们。之后可以根据解析后的结果执行相应的逻辑操作[^3]。 #### 完整示例:计算圆柱体体积 这里给出一个具体的案例说明如何利用 `argparse` 来简化程序中的参数管理。假设有一个函数用来计算圆柱体体积,在不使用 `argparse` 的情况下可能如下所示: ```python if __name__ == '__main__': print(cylinder_volume(1, 3)) ``` 但是当引入了 `argparse` 后,则可以通过命令行动态传入半径和高度作为参数来进行更灵活的操作: ```python def cylinder_volume(radius, height): import math return math.pi * radius ** 2 * height if __name__ == "__main__": parser = argparse.ArgumentParser(description="Calculate volume of a Cylinder.") parser.add_argument('-r', '--radius', type=float, required=True, help="Radius of Cylinder") parser.add_argument('-H', '--height', type=float, required=True, help="Height of Cylinder") args = parser.parse_args() print(f"The Volume is {cylinder_volume(args.radius, args.height)}") ``` 在这个版本里,用户可以直接通过 `-r/--radius` 和 `-H/--height` 参数设置圆柱体的具体尺寸,而无需硬编码数值到源码中[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值