Python2和Python3在语法和模块使用上有一些区别(这里不做详细说明),建议新手直接使用python3进行代码编写。实际工作中,很多运维或者测试脚本还是使用python2.0持续运行。当我们遇到批处理工作,需要将python3转python2(或将python2转python3)时,我们应该如何处理呢?有必要用一根线吗?手动修改代码怎么办?答案是不。本文介绍具体的实施方案。python2topython3Python3.7(有转换工具C:\Python37\Tools\scripts\2to3)我们可以直接在cmd命令行使用:python2to3.py-wD:/test.py#python2'stest.py转换成python3test.py文件很简单打印语句print"hello.py"C:\Python37\Tools\scripts>python2to3.py-wD:/test.pyRefactoringTool:Skippingoptionalfixer:bufferRefactoringTool:Skippingoptionalfixer:idiomsRefactoringTool:跳过可选修复程序:set_literalRefactoringTool:跳过可选修复程序:ws_commaRefactoringTool:重构D:/test.py---D:/test.py(原始)+++D:/test.py(重构)@@-1+1@@-print"hello.py"+print("hello.py")RefactoringTool:Filesthatweremodified:RefactoringTool:D:/test.py执行后查看test.py,转换后的代码如下:print("hello.py")参数-w会用新文件覆盖旧文件,不加-w,只会在控制台窗口显示修改的地方(不会修改文件中的内容);该文件将备份为.bak(如test.py.bak),如果不需要生成bak文件,只需加上参数-n即可。如果需要转换某个文件夹下的所有文件,比如D盘test文件夹下的所有文件,在命令行输入:python2to3.py-wD:/test/python3topython2Install首先是一个Python包:lib3to2,pipinstall3to2安装成功后,会在C:\Python37\Scripts目录下生成一个名为3to2的文件。:python3to2-wD:/test.py#将python3的test.py转换成python2如果需要转换某个文件夹下的所有文件,比如D盘test文件夹下的所有文件,在命令行输入:python3to2-wD:/test/可以发现python3转python2的方法和python2转python3的方法很相似!
