2

当打开和读取包含标记 ' 的文件时(如单词 should not ),python 将其替换为 \' (最终为 should\'t )。我尝试运行以下代码:

a=open("file.txt")
b=a.read()
b=b.replace("\'", "'")

但是 b 在运行第三行后保持不变,可能是因为它读取“\'”就好像它是“'”。请帮忙。

4

2 回答 2

6

您需要将斜线加倍:

b=b.replace("\\'", "'")

或使用r""原始字符串文字:

b=b.replace(r"\'", "'")

如果没有双斜杠或原始字符串文字,则将\'解释为 espace 代码含义'

请仔细检查您没有查看 python使用转义码表示字符的字符串表示形式: '

>>> '"' + "'"
'"\''
>>> print '"' + "'"
"'

在上面的示例中,我创建了一个包含双引号和单引号字符 ( "') 的字符串,Python 将其作为字符串表示形式回显给我。使用print打印实际的字符串内容而不是表示。请注意 Python 是如何在'此处为我转义的。

于 2013-01-01T18:20:03.893 回答
1

“\'“ 是相同的 ”'”。反斜杠将 ' 转义,因此它不执行其特殊功能。如果您有一个单引号字符串,该功能很有用。例如,字符串 '"should\'t"' 打印为 "should't"。

Python 3.3.0 (default, Dec 22 2012, 21:02:07) 
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 'shouldn't'
  File "<stdin>", line 1
    a = 'shouldn't'
                 ^
SyntaxError: invalid syntax
>>> a = 'shouldn\'t'
>>> a
"shouldn't"
>>> a = '"shouldn\'t'
>>> a
'"shouldn\'t'
>>> print(a)
"shouldn't
于 2013-01-01T19:58:59.360 回答