Python 3移植工作流程?

dbr*_*dbr 5 python porting python-3.x

我有一个小项目,我想尝试移植到Python 3 - 我该如何解决这个问题?

我已经使代码在没有警告的情况下运行python2.6 -3(主要是删除.has_key()调用),但我不确定使用2to3工具的最佳方法.

使用2to3工具将此源代码转换为3.0语法.不要手动编辑输出!

运行2to3 something.py输出差异,这对它自己没用.使用该--write标志覆盖something.py并创建一个备份..似乎我必须这样做..

2to3 something.py
python3.0 something.py
mv something.py.bak something.py
vim something.py
# repeat
Run Code Online (Sandbox Code Playgroud)

..这有点像回合 - 理想情况下,我可以做点什么......

mv something.py py2.6_something.py # once

2to3 py2.6_something.py --write-file something.py
vim py2.6_something.py
# repeat
Run Code Online (Sandbox Code Playgroud)

dbr*_*dbr 5

啊哈,您可以将2to3输出传递给patch命令,该命令可以将修改后的文件写入新文件:

mv something.py py2.6_something.py
2to3 py2.6_something.py | patch -o something.py
Run Code Online (Sandbox Code Playgroud)