python getopt argparse_sys.argvgetopt-argparse
* 作者:煮酒品茶 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 getopt argparse_sys.argvgetopt-argparse的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记(飞机大战项目练习)
- 下一篇: Python——数学运算函数