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下载文件记录黑名单的实现代码
Oct 24 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python实现的微信支付方式总结【三种方式】
Apr 13 Python
详解python深浅拷贝区别
Jun 24 Python
简单了解Django应用app及分布式路由
Jul 24 Python
pandas的resample重采样的使用
Apr 24 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
Python xlwt模块使用代码实例
Jun 10 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 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
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
动态加载iframe
2006/06/16 Javascript
接收键盘指令的脚本
2006/06/26 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
JQuery实现倒计时按钮具体方法
2013/11/14 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python Django批量导入不重复数据
2016/03/25 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
python 文件查找及内容匹配方法
2018/10/25 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
电台实习生求职信
2014/02/25 职场文书
报告会主持词
2014/04/02 职场文书
环保倡议书300字
2014/05/15 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js