python3代码兼容python2的方式

1.使用future特性

Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。

Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。

例如在python2.7中使用python3的print(“xxx”),就需要在文件开头引用future模块,不然报错:

SyntaxError: from __future__ imports must occur at the beginning of the file
#使用高版本的print与除法
from __future__ import print_function
from __future__ import division
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import __future__
>>> print 'aaa'
aaa
>>> print(aa)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'aa' is not defined
>>> print("aa")
aa
>>> print('aa')
aa

2.使用脚本将py2转为py3

转换python2代码到python3代码,网络上大部分答案是通过python安装目录下的 Tools/scripts/2to3.py脚本;如果是在windows系统下,2to3.py在[python或anaconda安装目录]\scripts目录下;但是在ubuntu16.04系统中,通过apt-get install安装的python3.5.2,系统中并没有2to3.py文件。
在/usr/bin/目录下, 有若干 2to3 的命令,这些命令可以被直接调用。2to3 -w /path/a/file.py

2to3命令的参数:

Usage: 2to3 [options] file|dir ...Options:-h, --help            show this help message and exit-d, --doctests_only   Fix up doctests only-f FIX, --fix=FIX     Each FIX specifies a transformation; default: all-j PROCESSES, --processes=PROCESSESRun 2to3 concurrently-x NOFIX, --nofix=NOFIXPrevent a transformation from being run-l, --list-fixes      List available transformations-p, --print-function  Modify the grammar so that print() is a function-v, --verbose         More verbose logging--no-diffs            Don't show diffs of the refactoring-w, --write           Write back modified files-n, --nobackups       Don't write backups for modified files-o OUTPUT_DIR, --output-dir=OUTPUT_DIRPut output files in this directory instead ofoverwriting the input files.  Requires -n.-W, --write-unchanged-filesAlso write files even if no changes were required(useful with --output-dir); implies -w.--add-suffix=ADD_SUFFIXAppend this string to all output filenames. Requires-n if non-empty.  ex: --add-suffix='3' will generate.py3 files.

python3代码兼容python2相关推荐

  1. python3可以运行python2的代码吗_Python2代码转Python3代码

    Python2代码转Python3代码教程 由于 尤其是跑一些神经网络的代码时有很多是在 Python2 的环境下写的.在 Python3 下运行会遇见很多不兼容. Python2代码转Python3 ...

  2. python3.7代码转python2.7_Python3.7与Python2.7在centos7下兼容并存

    原标题:Python3.7与Python2.7在centos7下兼容并存 1.下载python3.7 wget "https://www.python.org/ftp/python/3.7. ...

  3. python2转python3代码_python2代码批量转为python3代码

    由于python存在python2和python3两个主要的版本方向,经常会有将python2的代码转到python3的环境下运行的需求.尤其是跑一些神经网络的代码时有很多是在python2的环境下写 ...

  4. map python2 python3 兼容,Python2与Python3兼容

    Python2与Python3兼容 python3写的代码如何也能在pyhon2上跑?请无论如何加上这一句,python3没有啥影响 from __future__ import absolute_i ...

  5. 同时兼容Python2和Python3的字符串判断语句

    文章信息 作者:史晨 Charles Shih 创建时间:2018年08月24日 问题描述 我之前写过一个测试脚本,解释器用的是Python2.7,在RHEL7上用起来是没有问题的.但是最近要在RHE ...

  6. 使用python内置2to3工具将python2代码转换为python3代码

    我们都知道python有一个一直被诟病的毛病,python2与python3代码不兼容问题,而网上的一些教学大部分都是python2的,如果需要将其在python3环境下运行,有两个方法,一是:一个一 ...

  7. Python2代码转换成Python3代码

    Python2代码转换成Python3代码 找到 2to3.py ,一般python安装的都是默认位置的话,位置就在: 文件夹地址栏输入: C:\Users\Administrator\AppData ...

  8. map python2 python3 兼容_windows下 兼容Python2和Python3的解决方法

    windows下同时安装了python2和python3时,都可以配置环境变量,如果在命令行里输入python命令,windows会去环境变量里寻找Python的安装位置,如果先找到pytoon2的, ...

  9. Python 获取 网易云音乐热门评论(python2/python3代码)

    为方便学习,主要内容转自:http://www.cnblogs.com/lyrichu/p/6635798.html,感谢原作,如有侵权,联系删除 获取文本的方式有很多,比如从网上下载现成的文本文档, ...

最新文章

  1. iphone如何信任软件_你还在用大众点评吗?评价软件失去信任还如何活下去
  2. Jmeter --- 分布式测试
  3. java.util.Map中put,computeIfAbsent与putIfAbsent区别
  4. 学习“Perl基础教程:正则表达式”之摘录
  5. 文件下载至storage_如何防止Storage Sense在Windows 10上删除下载的文件
  6. fortran基础知识1----循环
  7. python 倒排索引(Inverted Index)
  8. 发生心梗后,家属做些什么才能保证患者获救,降低死亡?
  9. inline函数的作用
  10. python-12:怎么在爬虫代码中伪装header
  11. java用ajax实现多级菜单,ajax + java + jsp 做的二级菜单联动(全)
  12. 在虚拟机中安装Linux系统
  13. 科学计算机怎么算四分位数,83939数理分析网
  14. 三菱Q系列PLC项目资料 本系统采用三菱Q系列PLC,本系统中用到16个伺服电机
  15. 记录用retinaNet执行DDSM代码中的问题(求精度的过程中出现的错误)
  16. C语言简单的链表的创建(正向和反向)
  17. 广州羚羊社科技跑付app健身中心开业,涉足健身领域,人头爆满全场热销
  18. 大物知识点复习框架——光学
  19. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
  20. jdk版本和maven版本的匹配问题,maven报错method ‘void <init>()‘ not found

热门文章

  1. SICP读书笔记 2.3
  2. 判断一棵树是否是满二叉树
  3. Ubuntu资源暂时不可用 E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
  4. django生产环境部署(四):asgi服务器daphne处理websocket请求
  5. IT项目管理-项目章程和项目管理计划一例
  6. FMCW雷达的时域信号
  7. caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)
  8. DC/DC丘克(Cuk)变换电路的理论设计与实验仿真分析
  9. 从开创到引领,今麦郎如何成为数字化快消龙头?
  10. windows以及mac本地安装homestead