版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/infoworld/article/details/86673026
场景
-
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