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获取文件路径、文件名、后缀名的实例
Apr 23 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Django中Middleware中的函数详解
Jul 18 Python
python的常见矩阵运算(小结)
Aug 07 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
pip安装tensorflow的坑的解决
Apr 19 Python
如何使用Python自动生成报表并以邮件发送
Oct 15 Python
总结Python使用过程中的bug
Jun 18 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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
php中文字符截取防乱码
2008/03/28 PHP
php str_pad 函数使用详解
2009/01/13 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
php递归函数怎么用才有效
2018/02/24 PHP
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python实现堆排序的方法详解
2016/05/03 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python ChainMap的使用和说明详解
2019/06/11 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
焊接专业毕业生求职信
2013/10/01 职场文书
网络教育自我鉴定
2013/11/01 职场文书
实验教师岗位职责
2014/02/13 职场文书
自主招生学校推荐信
2014/09/26 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
出国留学导师推荐信
2015/03/26 职场文书
刑事案件上诉状
2015/05/23 职场文书
优秀志愿者感言
2015/08/01 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
MongoDB支持的索引类型
2022/04/11 MongoDB