1. configparser
try:
import configparser as ConfigParser # py3
except:
import ConfigParser # py2
configparser
— Configuration file parser
簡介:提供了解決方法地回。
2. thread
try:
import thread # py2
except:
import _thread as thread # py3
3. hashlib
# py2
m = hashlib.md5(data)
# py3
m = hashlib.md5(data.encode("utf8"))
4. 開啟一個(gè)簡單的web server(單行服務(wù)器):
# py2
$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
# py3
$ python -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...
5. base64.b64encode
#py2
base64.b64encode(feed_back)
#py3
base64.b64encode(feed_back.encode('utf-8'))
#py2
base64.encodestring(feed_back)
#py3
base64.encodestring(feed_back.encode('utf-8'))
6.long 類型
Py3.X去除了long類型逞敷,現(xiàn)在只有一種整型——int昔园,但它的行為就像2.X版本的long
# py2
>>> long(1468984980.116425)
1468984980L
#py3
>>> int(1468984980.116425)
1468984980
7. iterterms()
在python2中冶伞,同時(shí)提供iterxxxx和xxxx方法丙躏。比如iteritems, items. 在python3 中不出現(xiàn)iterxxx. 默認(rèn)都是生成器谚攒。
# py2
>>> a = {'a':'jia','b':'luo'}
>>> dir(a)
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
>>> for i in a.iteritems():
... print i
...
('a', 'jia')
('b', 'luo')
#py3
>>> a = {'a':'jia','b':'luo'}
>>> dir(a)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
>>> a.items()
dict_items([('a', 'jia'), ('b', 'luo')])
>>> for i in a.items():
... print(i)
...
('a', 'jia')
('b', 'luo')
8. queue
try:
from Queue import PriorityQueue # py2
except:
from queue import PriorityQueue # py3
9. raise
# py2
try:
del self[key]
except KeyError, k:
raise AttributeError, k
# py3
try:
del self[key]
except KeyError as k:
raise AttributeError(k)
10. exceptions
# py2
>>> from exceptions import UnicodeEncodeError
# py3
移除了 exceptions模塊鸡典。
11. reload
# py2
import sys
from imp import reload
reload(sys)
# py3
import sys
from imp import reload
reload(sys)
12. sys.setdefaultencoding("utf-8")
# py2
import sys
sys.setdefaultencoding("utf-8")
# py3
取消了setdefaultencoding()
[轉(zhuǎn)]python3中reload()
簡介:
Python 3.0把reload內(nèi)置函數(shù)移到了imp標(biāo)準(zhǔn)庫模塊中。它仍然像以前一樣重載文件榛丢,但是铲球,必須導(dǎo)入它才能使用
13. urllib&urllib2
#py2
>>> import urllib
>>> urllib.urlencode({'a':'jia','b':'xiao','c':'lei'})
'c=lei&a=jia&b=xiao'
#py3
>>> import urllib
>>> urllib.parse.urlencode({'a':'jia','b':'xiao','c':'lei'})
'c=lei&a=jia&b=xiao'
#py2
import urllib2
request = urllib2.Request(url)
opener = urllib2.urlopen(request)
except urllib2.HTTPError as msg:
except urllib2.URLError as msg:
# python2 中的urllib2, 在Python3中已經(jīng)并入urllib.
#py3
import urllib.request
request = urllib.request.Request(url)
opener = urllib.request.urlopen(request)
except urllib.error.HTTPError as msg:
except urllib.error.URLError as msg:
14.url
try:
from urlparse import urlparse # py2
except:
from urllib.parse import urlparse # py3
py3中涕滋,很多模塊集中到了urllib 中睬辐。
15.DES
# py2
from des import DES
Python3.x和Python2.x的區(qū)別
http://my.oschina.net/lenglingx/blog/205626
簡介:
介紹還是很充分的。
讓python同時(shí)兼容python2和python3的8個(gè)技巧分享
http://www.jb51.net/article/52075.htm
簡介:
一些擴(kuò)展也很有意思宾肺。