1 >>> from datetime import datetime 2 >>> now = datetime.now() # 获取当前datetime 3 >>> print(now) 4 2015-05-18 16:28:07.198690
1 >>> from datetime import datetime 2 >>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间建立datetime 3 >>> print(dt) 4 2015-04-19 12:20:00
timestamp:计算机存储内存储当前时间的标准计量,全球各地的计算机在任意时刻的timestamp都是彻底相同的。python
timestamp转换为datetime
,使用datetime
提供的fromtimestamp()
方法。算法
str转换为datetime:datetime.strptime(
'2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S'
)
浏览器
datetime转换为str:strftime('%a, %b %d %H:%M')
app
datetime
表示的时间须要时区信息才能肯定一个特定的时间,不然只能视为本地时间。函数
若是要存储datetime
,最佳方法是将其转换为timestamp再存储,由于timestamp的值与时区彻底无关。url
namedtuple:用来建立一个自定义的tuple
对象,而且规定了tuple
元素的个数,并能够用属性而不是索引来引用tuple
的某个元素。spa
deque:可以高效实现插入和删除操做的双向列表,适合用于队列和栈。deque
除了实现list的append()
和pop()
外,还支持appendleft()
和popleft()
,这样就能够很是高效地往头部添加或删除元素。code
defaultdict:能够在Key不存在时返回默认值。xml
OrderedDict:OrderedDict
的Key会按照插入的顺序排列,能够实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最先添加的Key。对象
Counter:简单计算器,Counter
实际上也是dict
的一个子类。
Base64:是一种用64个字符来表示任意二进制数据的方法,经常使用于在URL、Cookie、网页中传输少许二进制数据。
itertools
提供了很是有用的用于操做迭代对象的函数。 chain()
能够把一组迭代对象串联起来,造成一个更大的迭代器。
groupby()
把迭代器中相邻的重复元素挑出来放在一块儿.
User-Agent
头就是用来标识浏览器的。GET、POST、Handler
DOM vs SAX:
DOM会把整个XML读入内存,解析为树,所以占用内存大,解析慢,优势是能够任意遍历树的节点。
SAX是流模式,边读边解析,占用内存小,解析快,缺点是咱们须要本身处理事件。
在Python中使用SAX解析XML很是简洁,一般咱们关心的事件是start_element
,end_element
和char_data
,准备好这3个函数,而后就能够解析xml了。
会产生3个事件:
start_element事件,在读取<a href="/">
时;
char_data事件,在读取python
时;
end_element事件,在读取</a>
时。
HTMLParser:能够把网页中的文本、图像等解析出来。