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 相关文章推荐
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
利用Python如何生成便签图片详解
Jul 09 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
Python OpenCV实现视频分帧
Jun 01 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
python能做哪方面的工作
Jun 15 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
解决Django响应JsonResponse返回json格式数据报错问题
Aug 09 Python
Python模拟登录requests.Session应用详解
Nov 17 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 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
层叠菜单的动态生成
2006/10/09 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python简单计算文件夹大小的方法
2015/07/14 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
Python @property使用方法解析
2019/09/17 Python
python使用Matplotlib改变坐标轴的默认位置
2019/10/18 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
Timberland德国官网:靴子、鞋子、衣服、夹克及配件
2019/12/10 全球购物
求职推荐信范文
2013/12/01 职场文书
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
物控部经理职务说明书
2014/02/25 职场文书
如何写早恋检讨书
2014/09/10 职场文书
入党介绍人意见2015
2015/06/01 职场文书
校长新学期寄语2016
2015/12/04 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
Java Spring读取和存储详细操作
2022/08/05 Java/Android