[Python]_[初级]_[关于Python3兼容Python2的方案]

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

  1. Python2在最近几年已经不适合用在项目里了, 比如urllib3不支持,https TLS不支持, 导致访问https网络总有问题.

  2. 在持续集成的项目里, 自动构建是必不可少的开发流程, 开发人员提交代码, 持续集成程序检测到代码变更, 自动构建项目. 如果项目需要做一些资源打包和处理等等,在Windows上批处理是不能胜任的, 使用Python基本就是必然的选择. Java项目有自己的 gradle语言自然不用Python, 但是C/C++项目自然得考虑Python.

  3. Python输出变量时, print基本上是最快的偷懒的方案. 问题就是你本机如果是Python3,而服务器环境是Python2时, 这就需要同时支持两个版本的兼容实现, 怎么做?

说明

  1. Python官方自然考虑到了这个问题, 可以在参考里找到更详细的说明. 这里主要是列举了一些兼容2,3的实现.

  2. 如果只是想直接把Python2项目转换为Python3实现, 不妨使用2to3程序, 看参考.

例子

print

  1. printPython2时是内置的语句, 还是关键字. 到了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

  1. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peter(阿斯拉达)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值