一、使用时间相关信息,需要使用time模块:
import time
http://www.cnblogs.com/wanpython/archive/2010/08/07/1794598.html
二、字符串前'r'的用法
在打开文件的时候open(r'c:\....')
加r和不加''r是有区别的
'r'是防止字符转义的 如果路径中出现'\t'的话 不加r的话\t就会被转义 而加了'r'之后'\t'就能保留原有的样子
在字符串赋值的时候 前面加'r'可以防止字符串在赋值时候的时候不被转义 原理是在转义字符前加'\'
三、urllib.request.Request与urllib.request.urlopen区别
Q:
下面两行代码:
# 发送请求,得到服务器给我们的响应
response = urllib.request.Request(url, data,header)
# 通过urllib提供的request方法来向指定Url发送我们构造的数据,并完成登录过程
urllib.request.urlopen(response)
urllib.request.urlopen(参数)里面的参数不是url吗,为什么response响应也能做参数?urllib.request.urlopen(参数)执行的是什么操作?
A:
urllib.request.urlopen 就是打开url网址的操作,参数可以是一个url,也可以是一个request对象,作用是一样的,上面的代码中 response就是上一步得到的request对象。
===========================
Q:
urllib.request.Request()这个函数是什么意思?有什么作用?请各位大神能否讲解一下!!在下感激不尽
A:
首先需要明确,urllib.request.Request()不是一个函数,而是一个类,类具有自带的多种属性和多种可供操作的方法。以URL为参数将类实例化后,不需要自定义方法和属性,可直接使用类中的方法和属性,方便对URL进行操作
四、编码
一个字节包括八个比特位,每个比特位表示0或1,一个字节即可表示从00000000到11111111共2^8=256个数字。一个ASCII编码使用一个字节(除去字节的最高位作为作奇偶校验位),ASCII编码实际使用一个字节中的7个比特位来表示字符,共可表示2^7=128个字符。比如ASCII编码中的01000001(即十进制的65)表示字符'A',01000001加上32之后的01100001(即十进制的97)表示字符'a'。现在打开Python,调用chr和ord函数,我们可以看到Python为我们对ASCII编码进行了转换,如:
>>> chr(65)
'A'
>>> ord('A')
65
>>>
最原始的ASCII编码使用一个字节编码,但由于语言差异字符众多,人们用上了两个字节,出现了统一的、囊括多国语言的Unicode编码。
在Unicode中,原本ASCII中的127个字符只需在前面补一个全零的字节即可,比如前文谈到的字符‘a':01100001,在Unicode中变成了00000000 01100001。不久,美国人不开心了,吃上了世界民族之林的大锅饭,原本只需一个字节就能传输的英文现在变成两个字节,非常浪费存储空间和传输速度
人们再发挥聪明才智,于是出现了UTF-8编码。因为针对的是空间浪费问题,因此这种 UTF-8编码是可变长短的 ,从英文字母的一个字节,到中文的通常的三个字节,再到某些生僻字的六个字节。解决了空间问题,UTF-8编码还有一个神奇的附加功能,那就是兼容了老大哥的ASCII编码。一些老古董软件现在在UTF-8编码中可以继续工作。
注意除了英文字母相同,汉字在Unicode编码和UTF-8编码中通常是不同的。比如汉字的‘中'字在Unicode中是01001110 00101101,而在UTF-8编码中是11100100 10111000 10101101。
我们祖国母亲自然也有自己的一套标准。那就是GB2312和GBK。当然现在挺少看到。通常都是直接使用UTF-8。
encode的作用,使我们看到的直观的字符转换成计算机内的字节形式。
decode刚好相反,把字节形式的字符转换成我们看的懂的、直观的、“人模人样”的形式。
如果我们知道一个Unicode字节码,怎么变成UTF-8的字节码呢。懂了以上这些,现在我们就有思路了,先decode,再encode。代码如下:
xxx.decode('unicode-escape').encode() # xxx为Unicode字节码
参考: http://www.jb51.net/article/92006.htm