当打开和读取包含标记 ' 的文件时(如单词 should not ),python 将其替换为 \' (最终为 should\'t )。我尝试运行以下代码:
a=open("file.txt")
b=a.read()
b=b.replace("\'", "'")
但是 b 在运行第三行后保持不变,可能是因为它读取“\'”就好像它是“'”。请帮忙。
当打开和读取包含标记 ' 的文件时(如单词 should not ),python 将其替换为 \' (最终为 should\'t )。我尝试运行以下代码:
a=open("file.txt")
b=a.read()
b=b.replace("\'", "'")
但是 b 在运行第三行后保持不变,可能是因为它读取“\'”就好像它是“'”。请帮忙。
您需要将斜线加倍:
b=b.replace("\\'", "'")
或使用r""
原始字符串文字:
b=b.replace(r"\'", "'")
如果没有双斜杠或原始字符串文字,则将\'
解释为 espace 代码含义'
。
请仔细检查您没有查看 python使用转义码表示字符的字符串表示形式: '
>>> '"' + "'"
'"\''
>>> print '"' + "'"
"'
在上面的示例中,我创建了一个包含双引号和单引号字符 ( "'
) 的字符串,Python 将其作为字符串表示形式回显给我。使用print
打印实际的字符串内容而不是表示。请注意 Python 是如何在'
此处为我转义的。
“\'“ 是相同的 ”'”。反斜杠将 ' 转义,因此它不执行其特殊功能。如果您有一个单引号字符串,该功能很有用。例如,字符串 '"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