让人耳目一新的python库(转)

工欲善其事,必先利其器。Python 社区高产富饶,有大量的美丽,实用的库, 这里挑选出来一些接口设计简洁的库。文章转载自 hit9

1、docopt

Pythonic的命令行参数解析库,github 地址

"""Usage:
quick_example.py tcp <host> <port> [--timeout=<seconds>]
quick_example.py serial <port> [--baud=9600] [--timeout=<seconds>]
quick_example.py -h | --help | --version

"""
from docopt import docopt


if __name__ == '__main__':
arguments = docopt(__doc__, version='0.1.1rc')
print(arguments)

2、requests

大神kennethreitz的作品,简易明了的HTTP请求操作库, 是urllib2的理想替代品,API简洁明了,这才是Python开发者喜欢的

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}

3、sh

如其名,子进程接口。github 地址

from sh import ifconfig
print(ifconfig("wlan0"))

4、purl

拥有简洁接口的URL处理器,github 地址

>>> from purl import URL
>>> from_str = URL('https://www.google.com/search?q=testing')
>>> u.query_param('q')
u'testing'
>>> u.host()
u'www.google.com'

5、when.py

友好时间的日期库,github 地址

>>> import when
>>> when.timezone()
'Asia/Shanghai'
>>> when.today()
datetime.date(2013, 5, 14)
>>> when.tomorrow()
datetime.date(2013, 5, 15)
>>> when.now()
datetime.datetime(2013, 5, 14, 21, 2, 23, 78838)

6、clize

clize是一个类似 getopt 的库。可以用程序的函数名字来作为使用方法,github 地址

#!/usr/bin/env python

from clize import clize

@clize
def echo(text, reverse=false):
if reverse:
text = text[::-1]
print(text)
if __name__ == '__main__':
import sys
echo(*sys.argv)

而这个小程序就可以这么使用:

$ ./echo.py --help
Usage: ./echo.py [OPTIONS] text

Positional arguments:
text

Options:
--reverse
-h, --help Show this help

Pocoo小组

pocoo出的库,必属精品。它的库很出名: flask, jinja2, pygments,sphinx… github 地址

  

参考阅读