我正在将一个旧的Python代码库迁移到Python3。
存在许多字符串;u〃;前缀示例u'Umlautüö'
是否有一种自动的方法来去除前导";u";?
一个简单的正则表达式是不起作用的:
不能删除末尾的u'schibu'
:u'
。
示例2:
Multiline: '''foo
schibu'''
有没有一种方法可以在没有regex的情况下工作,但通过解析python语法?
更新
我的代码需要与Python2和Python3兼容几个月。
文件已包含from __future__ import unicode_literals
使用2to3工具unicode
修复程序应该可以做到这一点。
unicode
Renames unicode to str.
使用示例spam.py
文件进行干运行
eggs = u'foo'
壳内:
$ 2to3 --fix unicode spam.py
输出
root: Generating grammar tables from /usr/lib/python2.7/lib2to3/PatternGrammar.txt
RefactoringTool: Refactored spam.py
--- spam.py (original)
+++ spam.py (refactored)
@@ -1 +1 @@
-eggs = u'foo'
+eggs = 'foo'
RefactoringTool: Files that need to be modified:
RefactoringTool: spam.py
编辑:注意,您可以只运行如上所示的单个修复程序(在试运行中(,它将只应用相应的更改。