Py学习  »  Python

自动删除前导u'…'在Python字符串中

guettli • 3 年前 • 1398 次点击  

我正在将一个旧的Python代码库迁移到Python3。

有许多字符串都有“u”前缀。示例u'Umlaut'

有没有一种自动删除前导“u”的方法?

简单的正则表达式不起作用:

u'schibu' : u' 最后不能被移除。

例2:

Multiline: '''foo

schibu'''

有没有一种方法可以不用正则表达式,而是通过解析python语法来工作?

使现代化

我的代码需要与Python2和Python3兼容几个月。

这些文件已经包含 from __future__ import unicode_literals

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/132011
 
1398 次点击  
文章 [ 1 ]  |  最新文章 3 年前
buran
Reply   •   1 楼
buran    3 年前

使用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

编辑:注意,您可以只运行一个修复程序,如上图所示(在干运行中),它将仅应用相应的更改。