python获取命令行输入参数列表的实例代码


Posted in Python onJune 23, 2018

(一)单一独立的参数

如果命令行输入的参数都是各自单一独立的,直接用个循环把所有参数逐一读出来就行了。sys模块里面直接用args = sys.argv就可以获取到所有参数了(返回值args是一个list),args0]是执行的python文件路径名,args[1:]后面的才是真正命令行输入的参数,用个for循环就可以一一读取args列表,示例代码如下:

import sys

def usage():
	print """
This is usage.
This is usage.
This is usage.
"""

def main(argv):
	for arg in argv[1:]:
		if arg == '-t':
			pass
		elif arg == '-h' or arg == '--help':
			usage()
			sys.exit()
		elif arg == '-p':
			pass
		else:
			print "Error: invalid parameters"
			sys.exit()

if __name__ == '__main__':
	main(sys.argv)

(二)参数结合

如果要读取:-t mytest 这样的组合参数,上面的方法就行不通了,在shell里面有shift可以直接移到下一个参数,但在python没有shift的功能,所以得换种方式。

一种方法是用getopt模块(官方文档关于getopt的解释:点击打开链接):getopt模块里面的getopt函数可以指定参数可能的类型并且获取所有参数。

用法:

getopt.getopt(args, options[, long_options])

options参数指定短式输入,也就是单横杠"-",例如"-h",long_options是可选的,用于指定长式输入,也就是双横杠"--",例如"--help"。如果是单一参数输入,options和long_options都只需要直接写参数名,例如下面这句代码指定两个单一参数:-h/--help -t/--test:

opts, args = getopt.getopt(sys.argv[1:], 'ht', ['help', 'test''])

如果是后面还要继续接参数的,options要在参数名后面加冒号":",long_options要在参数名后面加等号"=",例如下面这句代码指定三个参数:-h/--help -t/--test -r path / --root path:

opts, args = getopt.getopt(sys.argv[1:], 'htr:', ['help', 'test','root='])

getopt函数的返回值有两个,一般只用第一个,如下面的代码,第一个返回值opts :" is a list of (option, value) pairs",也就是一个 -t mytest 这样的元素对,当然如果-t后面不需要再接参数的话,那就没有value值了。利用这个pairs返回值,我们可以用个for循环获取参数,不管是单一独立的参数,还是结合的参数,都可以,示例代码如下:

import sys
import getopt

def usage():
	print """
This is usage.
This is usage.
This is usage.
"""

def main(argv):
	try:
		opts, args = getopt.getopt(sys.argv[1:], 'm:p:h', ['miner=', 'params=', 'help'])
	except getopt.GetoptError:
		usage()
		sys.exit()
	
	for opt, arg in opts:
		if opt in ['-h', '--help']:
			pass
		elif opt in ['-t', '--test']:
			pass
		elif opt in ['-p', '--path']:
			param = arg
			print param
			sys.exit()
		else:
			print "Error: invalid parameters"
			usage()
			sys.exit()

if __name__ == '__main__':
	main(sys.argv)

另外,还有个知识点就是,如果想要print一大段string怎么办,用三个双引号包住即可,如上面的代码中usage函数,并且要注意的是三双引号里面的内容不用缩进,直接从最开头开始写,否则会导致出错。

以上这篇python获取命令行输入参数列表的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python列表操作使用示例分享
Feb 21 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
python中实现精确的浮点数运算详解
Nov 02 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
python得到单词模式的示例
Oct 15 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Keras搭建自编码器操作
Jul 03 Python
Python键盘输入转换为列表的实例
Jun 23 #Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 #Python
Python实现重建二叉树的三种方法详解
Jun 23 #Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 #Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 #Python
python和shell监控linux服务器的详细代码
Jun 22 #Python
python中plot实现即时数据动态显示方法
Jun 22 #Python
You might like
简单的PHP缓存设计实现代码
2011/09/30 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
2019/10/16 PHP
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
jQuery操作cookie
2016/08/08 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Bootstrap3 datetimepicker控件使用实例
2016/12/13 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
JavaScript实现随机五位数验证码
2019/09/27 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
Python是什么 Python的用处
2020/05/26 Python
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
大学生求职信范文
2014/05/24 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
教师研修随笔感言
2015/11/18 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书