* 作者:煮酒品茶 tea
* 博客:http://www.zwhset.com http://cwtea.blog.51cto.com
* 目前在京峰教育担任python讲师
#0、命令行参数介绍
煮酒品茶:说明再补,有事先
> sys.argv #获取命令行参数为一个列表
> getopt # 这个模块用于解析sys.argv的参数,可以支常用的- 与 --方法。通过关键字取值来进行解析。
> argparse 更复杂的命令行处理交由argparse来处理
经常看到:
> ./webbench -c 500 -t 60 http://www.baidu.com/
> ./webbench --help
#1、sys.argv 获取命令行传的参数输出为列表
~~~
#coding:utf8
import sys
print(sys.argv)
~~~
结果为列表 args[0] 为文件名,后面跟着是一个个参数。可根据相应去取值做处理就可以。
~~~
root@zwhset-python-22-190 books]# python ar.py
['ar.py']
[root@zwhset-python-22-190 books]# python ar.py first_arg second_arg
['ar.py', 'first_arg', 'second_arg']
~~~
#2、getopt模块
## 2.1、-参数 类unix风格参数 -c -n
~~~
In [1]: import getopt
In [2]: args = ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2'] #实际为sys.argv[1:]
In [3]: optlist, args = getopt.getopt(args, 'abc:d:') #注意第二个参数的编写
In [4]: optlist
Out[4]: [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
In [5]: args
Out[5]: ['a1', 'a2']
In [6]: dict(optlist) #对结果转换成字典从而进行更高级的处理
Out[6]: {'-a': '', '-b': '', '-c': 'foo', '-d': 'bar'}
~~~
## 2.2、--参数 长参 --help --nova-list
~~~
In [37]: args = ['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
In [38]: long_arg = [
....: ... 'condition=', 'output-file=', 'testing']
In [40]: optlist, args = getopt.getopt(args, 'x', long_arg)
In [41]: optlist
Out[41]:
[('--condition', 'foo'),
('--testing', ''),
('--output-file', 'abc.def'),
('-x', '')]
In [42]: args
Out[42]: ['a1', 'a2']
In [43]: dict(optlist)
Out[43]: {'--condition': 'foo', '--output-file': 'abc.def', '--testing': '', '-x': ''}
~~~
## 2.3 实现 webbench 的参数功能
**代码:**
~~~
#coding:utf8
'''
./webbench -c 500 -t 60 http://www.baidu.com/
./webbench --help
'''
import sys
import getopt
def webbench(url,client,time):
print 'webbench atack:{url},client number : {client},time:{time}'.format(url=url,
client=client,
time=time)
def webbench_help():
print 'help info:\n./webbench -c 500 -t 60 http://www.baidu.com/'
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "c:t:", ["help"])
opts = dict(opts)
if '--help' in opts:
webbench_help()
elif '-c' in opts and '-t' in opts:
webbench(url=args[0],client=opts['-c'],time=opts['-t'])
except Exception as e:
webbench_help()
if __name__ == '__main__':
main()
~~~
**结果如下:**
~~~
E:\code\test>python op.py -c 200 -t 60 http://www.zwhset.com/
webbench atack:http://www.zwhset.com/,client number : 200,time:60
E:\code\test>python op.py --help
help info:
./webbench -c 500 -t 60 http://www.baidu.com/
E:\code\test>python op.py --askdf
help info:
./webbench -c 500 -t 60 http://www.baidu.com/
~~~
煮酒品茶:argparse再补,有事先
- python核心
- python27编译安装
- 原处修改以及拷贝
- loop
- 内置的变量
- 内置类型
- python内置方法
- 内置方法列表
- 求绝对值-abs
- 求商取余-divmod
- 交换输入-input
- [未完]文件打开函数-open
- staticmethod
- 判断迭代对象真假all
- 判断迭代对象真假any
- 枚举对象enumerate
- 整数转换类型int
- ascii码转换ord-chr-unichr
- 类型转换str
- python执行字符串表达式eval
- 类型判断isinstance
- 数学计算pow
- 数学计算和sum
- 不可变集合frozenset
- zip
- 比较cmp
- basestring类型判断
- 反转序列迭代器resversed
- python模块
- glob
- sys.argvgetopt-argparse
- os
- sys
- requests
- random
- time
- date
- zlib-gzip-bz2-zipfile-tarfile
- ftp
- paramiko
- pexpect
- 数据库模块
- redis
- mysql
- mongodb
- __builtin__
- 学生PYTHON分享
- 学生运维分享