python获取命令行参数

2017年11月14日 评论

一、概述

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获取命令行参数

 

Redis小案例(一):实现网站访问频率限制 Redis

Redis小案例(一):实现网站访问频率限制

网站中经常需要用到网站限流,例如限制用户恶意爬虫获取网页信息以及在网站访问流量大时限制访问频率等等,这里使用redis做一个简单的网站登录限制案例。 一、使用EXPIRE进行访问频率限制 逻辑:用户登...
python redis-py模块用法 Python

python redis-py模块用法

一、安装 redis中操作redis的模块为redis-py,使用pip install redis或者easy_install redis安装即可,也可以进去https://pypi.python....
python使用_winreg模块操作注册表 Python

python使用_winreg模块操作注册表

一、基本操作 python中的_winreg模块提供了对于windows平台下注册表的一些基本操作,包括对键值的枚举以及增加删除键等,以`HKEY_CURRENT_USERConsole`为例: Op...
Python SMTP发送邮件 Python

Python SMTP发送邮件

一、概述 python 提供了两个包来提供SMTP 邮件服务支持:smtplib和 email,前者系统内置,后者需要通过pip 或者其他方式手动安装。其中smtplib 提供邮件发送功能,email...
匿名

发表评论

匿名网友