使用argparse的四个基本步骤

  • 创建 ArgumentParser() 对象
  • 调用 add_argument() 方法添加参数
  • 使用 parse_args() 解析添加的参数
# example

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('positional_param',type=int,help='positional param help') # 位置参数,凭位置赋值
parser.add_argument('--integer', type=int, help='display an integer') # 可选参数
args = parser.parse_args()
print (args.positional_param)
print (args.integer)

add_argument() 方法

add_argument() 方法定义如何解析命令行参数:

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

每个参数解释如下:

  • name or flags - 选项字符串的名字或者列表,例如 foo 或者 -f, --foo。

  • action - 命令行遇到参数时的动作,默认值是 store。

    • store_true,表示默认赋值为True;

    • store_const,表示赋值为const;

    • append,将遇到的值存储成列表,也就是如果参数重复则会保存多个值;

    • append_const,将参数规范中定义的一个值保存到一个列表;

    • count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;

  • nargs - 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。

  • const - action 和 nargs 所需要的常量值。

  • default - 不指定参数时的默认值。

  • type - 命令行参数应该被转换成的类型。

  • choices - 参数可允许的值的一个容器。

  • required - 可选参数是否可以省略 (仅针对可选参数)。

  • help - 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.

  • metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.

  • dest - 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.

最新文章

  1. 介绍DSA数字签名,非对称加密的另一种实现
  2. LeetCode OJ 106. Construct Binary Tree from Inorder and Postorder Traversal
  3. [小北De编程手记] : Lesson 04 玩转 xUnit.Net 之 Fixture(下)
  4. Ubuntu下无法安装sun-java6-jdk的解决办法
  5. 学习OpenCV——粒子滤波(网上两篇文章总结)
  6. Android SDK Manager Google Apis 下载
  7. HDU 1159 Common Subsequence
  8. setcookie各个参数详解
  9. 怎么制作U盘系统/PE启动盘
  10. 比NotePad++更好的文本代码(C#)编辑器Sublime Text
  11. 1023 Train Problem II(卡特兰数)
  12. Struts2下载
  13. H3C三层交换机配置IP
  14. Windows Azure NotificationHub+Firebase Cloud Message 实现消息推动(付源码)
  15. layui在open弹出层回显,解决动态select数据回显问题
  16. ubuntu 14.04 pytorch安装
  17. mv,rm等命令出现unrecognized option提示的解决方法
  18. OpenCV学习笔记(一) - 边界填充、Rect函数
  19. mybatis(错误一) 项目启动时报“Result Maps collection already contains value forxxx”的解决方案
  20. MVVM双向绑定实现之Object.defineProperty

热门文章

  1. Codeforces 1201D. Treasure Hunting
  2. Java Integer中的IntegerCache小记
  3. [转载]MySQL的存储引擎
  4. django 中实现文件下载的3种方式
  5. JavaScript金字塔打印
  6. python 练习合集一
  7. dubbo学习笔记三(全注解)
  8. String,到底创建了多少个对象?
  9. SpringMVC基础02——HelloWorld
  10. 2019/9/18 IIS服务器 ftp站安装:隔离模式