python获取命令行参数

马谦马谦马谦 2017年11月14日22:39:06 发表评论
文章最后编辑于:2017-11-18 17:36:54

一、概述

python获取命令行参数有两种方法,一种是使用sys模块直接获取到所有的命令行参数,另一种是使用getopt来获取指定标记的参数,后者更灵活一点,但是也复杂一点。

二、sys模块获取参数

通过sys模块获取命令行参数的方法很简单,直接调用sys.argv 就可以了,sys.argv 是一个命令行参数的列表 ,保存了所有命令行的参数,其中第一参数固定为脚本的名字。

然后输入./args.py Hello World运行,结果如下:

三、使用getopt模块来获取带标记参数

平常的程序中,经常会遇到这样带标记的参数输入,例如:mysql -u root -pls --help。当用户的标记输入错误时能出现usage提醒。

python中可以利用getopt模块来完成这一功能,getopt的用法为:

第一个参数是获取系统的命令行传参,sys.argv[1:]表示从系统二个参数开始获取,因为sys.argv[0]是脚本名字,对我们来说意义不大。

第二个参数是短标记集合,放在一个字符串中,每个字母表示一个短标记名字,使用的时候在前面加上-就可以了,上面的就表示设置三个短标记名字-i -u -h。其中如果标记后面有: ,表示该标记为参数值,会提取后面的数据作为值,例如mysql -u root 会把root作为-u标记的值;如果没有则表示这个标记为一个开关,触发相应事件,像ls --help直接打印出命令用法。

第三个是长标记名字,例如ls --help就是一个长标记参数,和第二个参数中的标记一一对应,标记后面有等号表示为参数标记。

返回值有两个,第一个是opt ,一个列表,每个元素是一个元组,分别表示参数名和值。第二个是args,表示所有没有被标记的参数值。

运行:

要注意的一些点是:

  • 短标记和长标记后可以跟空格和等号再接参数,短标记也可以省略这两个符号直接加参数。
  • 不管长标记短标记后面都不能跟多个值

python获取命令行参数

 

本文共执行46次查询,耗时0.267秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: