主要記錄我遇到的不同的地方,方便查找。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當中了。
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一塊兒用的,用於解壓壓縮文件。
先到這裏,細節之後研究