业务从python2迁移至python3中需要了解的知识

最新消息,python2.7于2020年1约1日起正式停止维护,这也就意味着python2完全退休,现在是python3的时代。
python2的退休影响着数以百万系统的安全性。
在python2退休之际,要尽可能的确保业务都迁移至python3,以方便后续维护与跟进。那么了解python2 与python3 的区别就至关重要。

python2与python3的区别

python2python3
print是关键字print称为函数
exec是关键字exec称为函数
unicode对象没有unicode对象,默认str是unicode
除号返回整数除号返回浮点数
xrange使用range代替xrange

Python3 采用的是绝对路径的方式进行 import
Python2 中存在老式类和新式类的区别,Python3 统一采用新式类。新式类声明要求继承 object,必须用新式类应用多重继承
execfile 语句被 Python3 废弃,推荐使用 exec(open("./filename").read())
long 整数类型被 Python3 废弃,统一使用 int
Python3 中这些方法再不再返回 list 对象:dictionary 关联的 keys()、values()、items(),zip(),map(),filter(),但是可以通过 list 强行转换
迭代器 iterator 的 next()函数被 Python3 废弃,统一使用 next(iterator)
raw_input 函数被 Python3 废弃,统一使用 input 函数
字典变量的 has_key 函数被 Python 废弃,统一使用 in 关键词
file 函数被 Python3 废弃,统一使用 open 来处理文件,可以通过 io.IOBase 检查文件类型
apply 函数被 Python3 废弃
异常 StandardError 被 Python3 废弃,统一使用 Exception

快速迁移至python3

python自带工具:2to3
Linux操作系统下:

2to3 [文件名]

Windows操作系统下,打开命令行
进入Scripts目录下,找到要转换的文件目录,然后执行下面命令

.\2to3.exe -w  E:\xxx\xxx.py

没有-w命令是只列出修改内容,而不修改。执行命令后会生成一个.bak文件用来保留之前的版本

-f 指定只使用某几个规则进行转换,其余忽略
-x 指定排除某个规则不做转换
-o或-output-dir 指定输出文件目录
-W 或 --write-unchanged-files 没有需要改的情况也要输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值