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编程开发之日期操作实例分析
Nov 13 Python
Django的分页器实例(paginator)
Dec 01 Python
django请求返回不同的类型图片json,xml,html的实例
May 22 Python
使用PyInstaller将python转成可执行文件exe笔记
May 26 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python collections.deque双边队列原理详解
Oct 05 Python
python3中编码获取网页的实例方法
Nov 16 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
Jan 08 Python
TensorFlow的自动求导原理分析
May 26 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
vue axios整合使用全攻略
2018/05/24 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
pyramid配置session的方法教程
2013/11/27 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
python如何实现反向迭代
2018/03/20 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
CSS3+JavaScript实现炫酷呼吸效果的示例代码
2020/06/15 HTML / CSS
static关键字的用法
2013/10/07 面试题
仓库管理专业个人自我评价范文
2013/11/11 职场文书
服装机修工岗位职责
2013/12/26 职场文书
天坛导游词
2015/02/02 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
欠条格式范本
2015/07/03 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技