字符串的2to3转换

时间:2015-12-16 08:49:32

标签: python python-3.x python-2to3

我为Python代码编写了一个基于Qt的小文本编辑器,我将其嵌入到我的应用程序中。现在我将切换到Python 3,我想帮助我的应用程序的用户转换他们的代码。我知道2to3可以完成大部分文件转换。但是,我需要进行即时转换,而不需要触摸磁盘上的文件。我的意思是:

py3_code_str = convert2to3(py2_code_str)

是否有人知道如何使用2to3lib2to3

实现目标

3 个答案:

答案 0 :(得分:2)

不幸的是,lib2to3没有稳定的界面,这意味着它可能会发生巨大变化。

但是,如果您真的不关心这一点,则可能(稍作修改)使用from lib2to3.refactor import RefactoringTool并继续使用refactor_string方法。

答案 1 :(得分:1)

感谢plaes answer

,对我有用
from lib2to3.refactor import RefactoringTool, get_fixers_from_package
refactoring_tool = RefactoringTool(fixer_names=get_fixers_from_package('lib2to3.fixes'))
node3 = refactoring_tool.refactor_string(text2, 'script')
text3 = str(node3)

答案 2 :(得分:0)

这真的不是2to3的用途。

您应该以与Python 2和3兼容的方式编写代码。six库可以帮助解决这个问题。