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实现简单截取中文字符串的方法
Jun 15 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
django中瀑布流写法实例代码
Oct 14 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python各种excel写入方式的速度对比
Nov 10 Python
Python 使用dict实现switch的操作
Apr 07 Python
PyQt5结合QtDesigner实现文本框读写操作
Jun 11 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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
python list转dict示例分享
2014/01/28 Python
详解Python中的__init__和__new__
2014/03/12 Python
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
python构建深度神经网络(DNN)
2018/03/10 Python
Python中property函数用法实例分析
2018/06/04 Python
python查看数据类型的方法
2019/10/12 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
法警的竞聘演讲稿
2014/01/02 职场文书
劳资协议书范本
2014/04/23 职场文书
青年文明号口号
2014/06/17 职场文书
部队2014年终工作总结
2014/11/27 职场文书
评职称个人总结
2015/03/05 职场文书
部队2015年终工作总结
2015/04/02 职场文书
圣诞晚会主持词
2015/07/01 职场文书
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL