python 获取命令行参数

一、概述

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,表示所有没有被标记的参数值。

运行:

要注意的一些点是:

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

 

发表评论