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使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
简单的抓取淘宝图片的Python爬虫
Dec 25 Python
详解python中requirements.txt的一切
Mar 03 Python
python指定写入文件时的编码格式方法
Jun 07 Python
django celery redis使用具体实践
Apr 08 Python
python 字典操作提取key,value的方法
Jun 26 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 Python
softmax及python实现过程解析
Sep 30 Python
Python list与NumPy array 区分详解
Nov 06 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
python数据分析之用sklearn预测糖尿病
Apr 22 Python
Python3 如何开启自带http服务
May 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
PHP新手上路(四)
2006/10/09 PHP
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
php对大文件进行读取操作的实现代码
2013/01/23 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
js 表单验证方法(实用)
2009/04/28 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
angularJS开发注意事项
2018/05/26 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
一个超级简单的python web程序
2014/09/11 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
中学教师岗位职责
2013/11/26 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
保险内勤岗位职责
2015/04/13 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
创业计划书之酒吧
2019/12/02 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis
python基础之模块的导入
2021/10/24 Python