python3.x和2.x的區別

主要記錄我遇到的不同的地方,方便查找。html


1.print的差異python

2.x中 sql

print ’test‘python3.x

3.x中api

 print(’test‘)
網絡


2.urllib的差異
編碼

在python3.x中是沒有urllib2的,若是須要導入urlopen,這樣寫url

from urllib.request import urlopen

使用方法:
spa

c=urlopen(page)

若是是.net

import urllib.request

一樣是使用:

c=urllib.request.urlopen(page)



3.configparser的差異

python2.x的配置模塊是ConfigParser,python3.x改爲configparser

例子:

from configparser import ConfigParser   

CONFIGFILE = "config.txt"

config = ConfigParser()

config.read(CONFIGFILE)

也能夠這樣


import configparser 

CONFIGFILE = "config.txt"

config = configparser .ConfigParser()


首字母改爲小寫多是爲了防止混淆吧。


4.urlparse的差異

Python所帶的urllib.parse(urlparse)模塊,咱們可以輕鬆地把URL分解成元件,以後,還能將這些元件從新組裝成一個URL。

python2.X爲urlparse,在python3.X改成urllib.parse

from urlparse import urljoin #python2.X
from urllib.parse import urljoin #python3.X

感受網絡相關的都被集中到urllib當中了。

相關文章:urlparse和urllib解析html


5.pysqlite 2和sqlite3的差異

pysqlite是python中與SQLite通訊的模塊。

在Python2.x中sqlite須要單獨的下載安裝,安裝完成後,導入的語句

from pysqlite2 import dbapi2

Python3.x中已經集成了sqlite模塊,導入的語句

from sqlite3 import dbapi2


6.decode(解碼)/encode(編碼)的改變

Python 3中str再也不具備decode方法,由於它存儲的是「未編碼」的字符串。decode操做交由byte完成了。

仍是有encode方法的。

'中文'.encode('gb2312')獲得b'\xd6\xd0\xce\xc4'


7.StringIO和io.StringIO

StringIO去除了StringIO和cStringIO模塊,取而代之的是io.StringIO或者io.BytesIO

此模塊主要用於在內存緩衝區中讀寫數據。io.StringIO用於處理字符文件,io.BytesIO用於處理二進制文件。

個人理解io.StringIO主要是和gzip一塊兒用的,用於解壓壓縮文件。


先到這裏,細節之後研究

相關文章
相關標籤/搜索