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 13 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 Python
Selenium定位元素操作示例
Aug 10 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Python和Sublime整合过程图示
Dec 25 Python
Python运行DLL文件的方法
Jan 17 Python
增大python字体的方法步骤
Jul 05 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
pytorch 如何使用amp进行混合精度训练
May 24 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 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函数解决SQL injection
2006/10/09 PHP
PHP 魔术函数使用说明
2010/05/14 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP获取一段文本显示点阵宽度和高度的方法
2015/03/12 PHP
JS焦点图切换,上下翻转
2011/05/12 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
2017/12/22 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python类super()及私有属性原理解析
2020/06/15 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
服装销售人员求职自我评价
2013/09/26 职场文书
三好学生自我鉴定
2013/12/17 职场文书
办公室文员自荐书
2014/02/03 职场文书
党员创先争优心得体会
2014/09/11 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
迎国庆横幅标语
2014/10/08 职场文书
旷课检讨书
2015/01/26 职场文书
工商局调档介绍信
2015/10/22 职场文书
python 制作一个gui界面的翻译工具
2021/05/14 Python
python playwright 自动等待和断言详解
2021/11/27 Python
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python