python3.x和2.x的区别

原创
2014/10/26 12:08
阅读数 147

主要记录我遇到的不一样的地方,方便查找。


1.print的差别

2.x中 

print ’test‘

3.x中

 print(’test‘)


2.urllib的差别

在python3.x中是没有urllib2的,如果需要导入urlopen,这样写

from urllib.request import urlopen

使用方法:

c=urlopen(page)

如果是

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一起用的,用于解压压缩文件。


先到这里,细节以后研究

展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部