51Testing软件测试论坛

标题: python3.x和2.x的区别 [打印本页]

作者: 测试积点老人    时间: 2019-1-10 15:56
标题: python3.x和2.x的区别
本帖最后由 测试积点老人 于 2019-1-10 16:01 编辑

1.print的差别

2.x中

print ’test‘

3.x中

print(’test‘)



2.urllib的差别

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

  1. from urllib.request import urlopen
复制代码

使用方法:

  1. c=urlopen(page)
复制代码

如果是

  1. import urllib.request
复制代码

同样是使用:

  1. c=urllib.request.urlopen(page)
复制代码


3.configparser的差别

python2.x的配置模块是ConfigParser,python3.x改成configparser


例子:

  1. from configparser import ConfigParser   

  2. CONFIGFILE = "config.txt"

  3. config = ConfigParser()

  4. config.read(CONFIGFILE)
复制代码

也可以这样

  1. import configparser

  2. CONFIGFILE = "config.txt"

  3. config = configparser .ConfigParser()
复制代码

首字母改成小写可能是为了防止混淆吧。



4.urlparse的差别

Python所带的urllib.parse(urlparse)模块,我们能够轻松地把URL分解成元件,之后,还能将这些元件重新组装成一个URL。


python2.X为urlparse,在python3.X改为urllib.parse

  1. from urlparse import urljoin #python2.X
  2. from urllib.parse import urljoin #python3.X
复制代码

感觉网络相关的都被集中到urllib当中了。



5.pysqlite 2和sqlite3的差别

pysqlite是python中与SQLite通信的模块。


在Python2.x中sqlite需要单独的下载安装,安装完成后,导入的语句

  1. from pysqlite2 import dbapi2
复制代码

在Python3.x中已经集成了sqlite模块,导入的语句

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





作者: Miss_love    时间: 2021-1-5 13:37
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2