Python如何使用argparse模块处理命令行参数


Posted in Python onDecember 11, 2019

这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

介绍

argparse是python3标准库里用来处理命令行参数的模块

使用三步走:

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

实例

我们先来创建一个python文件

vim test.py

然后开始在输入模式(i)下输入代码

import argparse # 导入模块

parser = argparse.ArgumentParser() # 创建一个对象
parser.add_argument("square", help="pls enter a num", type=int) # 增加一个叫square的参数,类型必须是int
parser.add_argument("input_str", help="pls enter a string", type=str) # 增加一个叫input_str的参数,类型必须是str
args = parser.parse_args() # 解析
print(args.square ** 2)
print(args.input_str)

然后,让我们来运行一下

python test.py 3 "I am a string!"
# 结果是:
# 9
# I am a string!

如果要查看文件的参数信息

python test.py -h

如果要设定可选参数

parser = argparse.ArgumentParser()
parser.add_argument("--argument1", “-arg1”, help="display the first argument", type=int) # 参数名前加--,取别名为-arg1
parser.add_argument("--argument2", choices=[5,10,20], help="display the second argument", type=int) # choices 为限定候选列表
args = parser.parse_args()

print(args)
if args.argument1 and args.argument2:
  print(args.argument1 + args.argument2)

执行一下

python test.py
# Namespace(argument1=None, argument2=None)

python test.py -arg1 3 --argument2 5
# Namespace(argument1=3, argument2=5)
# 8

如果要设定必选参数

使用required

parser.add_argument("--num", type=int, required=True, help="must enter a num")

参数还可以是文件

parser.add_argument('file', type=argparser.FileType('r')) # 读取文件
parser.add_argument('file', default='text.txt', type=argparser.FileType('r')) # 读取文件,预定义参数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中用于返回绝对值的abs()方法
May 14 Python
python实现数独算法实例
Jun 09 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
python requests.get带header
May 05 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 #Python
Python Lambda函数使用总结详解
Dec 11 #Python
Python迭代器模块itertools使用原理解析
Dec 11 #Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 #Python
Python partial函数原理及用法解析
Dec 11 #Python
opencv3/python 鼠标响应操作详解
Dec 11 #Python
通过实例简单了解Python中yield的作用
Dec 11 #Python
You might like
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
解析PHP的session过期设置
2013/06/29 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
webpack 插件html-webpack-plugin的具体使用
2018/04/09 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
python监控进程脚本
2018/04/12 Python
python中的json总结
2018/10/11 Python
python学生管理系统开发
2019/01/30 Python
python动态进度条的实现代码
2019/07/03 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
大学三年计划书范文
2014/04/30 职场文书
销售顾问工作计划书
2014/08/15 职场文书
民主生活会发言材料
2014/10/20 职场文书
投标售后服务承诺书
2015/04/29 职场文书
大学感恩节活动总结
2015/05/05 职场文书
我是特种兵观后感
2015/06/11 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
一年级语文教学随笔
2015/08/14 职场文书
销售口号霸气押韵
2015/12/24 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
vue的项目如何打包上线
2022/04/13 Vue.js