【发布时间】:2018-09-20 05:10:48
【问题描述】:
好吧,我正在尝试清理包含法语口音代码的文件:
#353= IFCPROPERTYSINGLEVALUE('Charge d''\X2\00E9\X0\clairage sp\X2\00E9\X0\cifi\X2\00E9\X0\e par surface',$,IFCREAL(10.7639104167097),$);
我创建了这个小函数:
def CleanSpace(sp):
sp.replace("\X2\00F4\X0\","ô")
sp.replace("\X2\00E9\X0\","é")
return(sp)
但是 Python 3 给了我错误:
sp.replace("\X2\00F4\X0\","ô")
^
SyntaxError: invalid syntax
请问我该如何解决? 提前致谢
编辑:如果有帮助,我宁愿在控制台中尝试这一行,但答案很奇怪:
$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a='02_RADIOTHERAPIE/ ARC -plateforme recherche- Radioth\X2\00E9\X0\rapie'
>>> a
'02_RADIOTHERAPIE/ ARC -plateforme recherche- Radioth\\X2\x00E9\\X0\rapie'
>>> a.replace('\X2\00E9\X0\\','é')
'02_RADIOTHERAPIE/ ARC -plateforme recherche- Radioth\\X2\x00E9\\X0\rapie'
【问题讨论】:
-
问题是
\"在第一个参数的末尾 - 它将 " 解释为字符串的一部分,而不是关闭它。删除那个 `\`。着色应该给你提示. -
另外,您不需要这样做,告诉它输入字符串是 unicode 转义,并且您想要生成一个 UTF-8 字符串。这样你就不需要弄清楚你让 Python 为你找出所有的 unicode 转义序列:) stackoverflow.com/questions/11375684/…
-
@kabanus:谢谢,是的,着色给了我一个疑问,但如果我放弃或加倍这个最后的 \,没有错误,但功能“替换”不起作用:我的打印始终包含 \X2\ 00E9\X0\...
-
@Rob:这个链接我看不懂,技术含量太高了
-
我不明白 - 你想获取一个常规字符串,并将其转换为适当的 unicode 字符吗?
\X2\00F4\X0和你写的符号是一回事,我不明白你在做什么。在任何情况下,您都必须删除最后的反斜杠,这完全是错误的,无论如何。
标签: python-3.x accent-sensitive