Python:读取文本文件后的string.replace(“\'”,“'”)

时间:2013-01-01 18:19:27

标签: python string python-3.x

当打开并读取包含标记'的文件时(就像在单词中一样),python将其替换为\'(最终不应该)。我尝试运行以下代码:

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

但是在运行第三行之后b仍然保持不变,可能是因为它显示为“\”,好像它是“'”。请帮忙。

2 个答案:

答案 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