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使用MySQLdb for Python操作数据库教程
Oct 11 Python
跟老齐学Python之编写类之四再论继承
Oct 11 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
Python实现修改IE注册表功能示例
May 10 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
Python基于Socket实现简单聊天室
Feb 17 Python
用Python提取PDF表格的方法
Apr 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
解析strtr函数的效率问题
2013/06/26 PHP
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
Js apply方法详解
2017/02/16 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
python方法生成txt标签文件的实例代码
2018/05/10 Python
基于python实现学生信息管理系统
2019/11/22 Python
python 字段拆分详解
2019/12/17 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
师范生个人推荐信
2013/11/29 职场文书
超市开学活动方案
2014/03/01 职场文书
还款承诺书范文
2014/05/20 职场文书
课内比教学心得体会
2014/09/09 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
小型婚礼主持词
2015/06/30 职场文书
2016年村党支部公开承诺书
2016/03/24 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript