Python(九)常用内置模块

1.datetime
获取当前时间

>>> from datetime import datetime
	       
>>> now=datetime.now()
	       
>>> print(now)
	       
2019-03-14 07:59:53.037790

获取指定时间

>>> from datetime import datetime
	       
>>> dt=datetime(2015,4,19,12,20)
	       
>>> print(dt)
	       
2015-04-19 12:20:00

datetime转换为str

>>> from datetime import datetime
	       
>>> now=datetime.now()
	       
>>> print(now.strftime('%a, %b %d %H:%M'))
	       
Thu, Mar 14 08:03

日期的加减

>>> from datetime import datetime,timedelta
	       
>>> now=datetime.now()
	       
>>> now
	       
datetime.datetime(2019, 3, 14, 8, 5, 3, 282871)
>>> now+timedelta(hours=10)
	       
datetime.datetime(2019, 3, 14, 18, 5, 3, 282871)
>>> now-timedelta(days=1)
	       
datetime.datetime(2019, 3, 13, 8, 5, 3, 282871)
>>> now+timedelta(days=2,hours=12)
	       
datetime.datetime(2019, 3, 16, 20, 5, 3, 282871)

2.collections
用namedtuple函数自定义元祖

>>> from collections import namedtuple
	       
>>> Point=namedtuple('Point',['x','y'])
	       
>>> p=Point(1,2)
	       
>>> p.x
	       
1
>>> p.y
	       
2

用deque双向插入,适用于栈和队列

>>> from collections import deque
	       
>>> q=deque(['a','b','c'])
	       
>>> q.append('x')
	       
>>> q.appendleft('y')
	       
>>> q
	       
deque(['y', 'a', 'b', 'c', 'x'])

如果希望dict的key不存在返回时不报错而是返回一个值,就用defaultdict

>>> from collections import defaultdict
	       
>>> dd=defaultdict(lambda:'N/A')
	       
>>> dd['key1']='abc'
	       
>>> dd['key1']
	       
'abc'
>>> dd['key2']
	       
'N/A'

OrderedDict可使dict的迭代有序

>>> d=dict([('a',1),('b',2),('c',3)])
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> od=OrderedDict([('a',1),('b',2),('c',3)])
>>> od
OrderedDict([('a', 1), ('b', 2), ('c', 3)])

Counter计数器

>>> from collections import Counter
>>> c=Counter()
>>> for ch in 'programming':
	c[ch]=c[ch]+1

	
>>> c
Counter({'r': 2, 'g': 2, 'm': 2, 'p': 1, 'o': 1, 'a': 1, 'i': 1, 'n': 1})

3.itertools
groupby()把迭代器中相邻的重复元素挑出来放在一起

>>> import itertools
>>> for key,group in itertools.groupby('AAABBCCAAA'):
	print(key,list(group))

	
A ['A', 'A', 'A']
B ['B', 'B']
C ['C', 'C']
A ['A', 'A', 'A']

4.urllib
返回get请求使用Request对象,通过往Request对象添加HTTP头,我们就可以把请求伪装成浏览器

from urllib import request
req = request.Request('http://www.douban.com/')
req.add_header('User-Agent','Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
with request.urlopen(req) as f:
    print('Status:',f.status,f.reason)
    for k,v in f.getheaders():
        print('%s:%s' % (k,v))
    print('Data:',f.read().decode('utf-8'))

Status: 200 OK
Date:Thu, 14 Mar 2019 01:46:39 GMT
Content-Type:text/html; charset=utf-8
Transfer-Encoding:chunked
Connection:close
Vary:Accept-Encoding
X-Xss-Protection:1; mode=block
X-Douban-Mobileapp:0
Expires:Sun, 1 Jan 2006 01:00:00 GMT
Pragma:no-cache
Cache-Control:must-revalidate, no-cache, private
Set-Cookie:talionnav_show_app="0"
Set-Cookie:bid=3iD5-8rwH4Q; Expires=Fri, 13-Mar-20 01:46:39 GMT; Domain=.douban.com; Path=/
X-DOUBAN-NEWBID:3iD5-8rwH4Q
X-DAE-Node:anson45
X-DAE-App:talion
Server:dae
X-Frame-Options:SAMEORIGIN
Strict-Transport-Security:max-age=15552000;
X-Content-Type-Options:nosniff

猜你喜欢

转载自blog.csdn.net/qq_37282683/article/details/88546306