python2.x代码转为python3.x代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/symoriaty/article/details/78439769
Python官方有一个转换工具:2to3.py。
无论是python还是Anaconda,2to3.py都在…\Tools\scripts里面。通过cmd或者anaconda prompt将文件路径定位到2to3的文件位置。
输入 python 2to3.py --help,可以看到该工具的帮助说明:
由帮助说明可以看出转换所需要的参数信息。
可以单独转换一个.py文件,也可以按照目录批量转换。
假如要转换的代码所在目录是 E:\test,
①单独转换
python 2to3.py -w E:\test\test.py
比如:
python D:\ProgramData\Miniconda3\envs\python3.6\Tools\scripts\2to3.py -w a_2.py
②按目录批量转换
python 2to3.py -w E:\test
转换过后会发现多了一个.py.bak文件,这是原来的.py文件备份
这是我们同事总结的代码:
# coding=utf-8
import os
# 定义一个处理方法
def Python2toPython3(dirname, p2to3FileName):
if os.path.exists(dirname):
for dirpath, dirnames, filenames in os.walk(dirname):
for filename in filenames:
if filename.endswith('.py'):
fileFullName = os.path.join(dirpath, filename)
print(('Processing File:', fileFullName))
pycode2to3 = ("python " + p2to3FileName + " -w " +
fileFullName)
print((os.popen(pycode2to3, 'r').read()))
# dirname 需要转换的文件目录
dirname = "C:/Users/Administrator/Desktop/koala"
# p2to3FileName 本机Python安装目录下的2to3.py的路径,2to3.py是python自带的工具
p2to3FileName = ("D:/Users/Administrator/Miniconda3/pkgs/python-3.6.3-h9e2ca53_1/Tools/scripts/2to3.py")
Python2toPython3(dirname, p2to3FileName)