场景
-
Python2在最近几年已经不适合用在项目里了, 比如urllib3不支持,https TLS不支持, 导致访问https网络总有问题. -
在持续集成的项目里, 自动构建是必不可少的开发流程, 开发人员提交代码, 持续集成程序检测到代码变更, 自动构建项目. 如果项目需要做一些资源打包和处理等等,在
Windows上批处理是不能胜任的, 使用Python基本就是必然的选择. Java项目有自己的gradle语言自然不用Python, 但是C/C++项目自然得考虑Python. -
Python输出变量时,print基本上是最快的偷懒的方案. 问题就是你本机如果是Python3,而服务器环境是Python2时, 这就需要同时支持两个版本的兼容实现, 怎么做?
说明
-
Python官方自然考虑到了这个问题, 可以在参考里找到更详细的说明. 这里主要是列举了一些兼容2,3的实现. -
如果只是想直接把
Python2项目转换为Python3实现, 不妨使用2to3程序, 看参考.
例子
print在Python2时是内置的语句, 还是关键字. 到了Python3时就只是一个函数了. 如果需要在Python2,3都支持print输出, 得这样写:
from __future__ import print_function
#print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout])
print(sys.argv[0],sys.argv[1],sys.argv[2])
open
Python3可以使用内置函数open打开指定编码的文件,但是Python2不行. 如果需要兼容Python2,就需要使用io.open, 比如打开编辑unicode的文件.
f = io.open(path,"r",-1,"utf-16")
参考
Porting Python 2 Code to Python 3
25.4. 2to3 - Automated Python 2 to 3 code translation

本文探讨了Python2不再适用于现代项目的原因,特别是在持续集成和资源处理方面,并介绍了如何在Python2和Python3之间实现代码兼容,包括使用print函数和open函数的跨版本解决方案。
1668

被折叠的 条评论
为什么被折叠?



