当打开并读取包含标记'的文件时(就像在单词中一样),python将其替换为\'(最终不应该)。我尝试运行以下代码:
a=open("file.txt")
b=a.read()
b=b.replace("\'", "'")
但是在运行第三行之后b仍然保持不变,可能是因为它显示为“\”,好像它是“'”。请帮忙。
答案 0 :(得分:6)
你需要加倍斜杠:
b=b.replace("\\'", "'")
或使用r""
原始字符串文字:
b=b.replace(r"\'", "'")
如果没有doubled斜杠或原始字符串文字,\'
将被解释为espace代码,意思是'
。
请仔细检查您是否使用转义码查看python 代表 '
字符的字符串表示形式:
>>> '"' + "'"
'"\''
>>> print '"' + "'"
"'
在上面的例子中,我创建了一个包含双引号和单引号字符("'
)的字符串,并且Python回显给我作为字符串表示。使用print
打印实际的字符串内容而不是表示。请注意Python如何在那里转发'
引用。
答案 1 :(得分:1)
“\”与“'”相同。反斜杠逃脱'所以它没有做它的特殊功能。如果您有一个带引号的字符串,那么该功能非常有用。 例如,字符串'“shouldn \'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