Python replace()中的正斜杠

Python replace()中的正斜杠,python,string,replace,Python,String,Replace,我一直在用Python2.7编写一个字谜解算器,遇到了一个我一直无法找到解释的好奇心。该程序从一个文件中读取,该文件包含一系列的字谜,格式如下: # anagram # anagram # anagram . . . etc 将其直接读入字符串,Python显然会注释掉所有内容,因此我正在使用replace()尝试找到一种去除散列字符的方法。努力 string = file.read().replace('#', '') …将生成一个空字符串。我试图在散列前面使用反斜杠,但

我一直在用Python2.7编写一个字谜解算器,遇到了一个我一直无法找到解释的好奇心。该程序从一个文件中读取,该文件包含一系列的字谜,格式如下:

#    anagram
#    anagram
#    anagram
.
.
.
etc
将其直接读入字符串,Python显然会注释掉所有内容,因此我正在使用replace()尝试找到一种去除散列字符的方法。努力

string = file.read().replace('#', '')
…将生成一个空字符串。我试图在散列前面使用反斜杠,但却错误地输入了正斜杠,结果是:

string = file.read().replace('/#', '')
string = '#\tanagram\n#\tanagram\n#\tanagram'
在这一点上,去掉不必要的字符是不需要动脑筋的事情,程序运行得非常完美。然而,我并不满足于使用一行我不完全理解的代码。我没有太多的运气找到任何文档或代码来解释/使我们理解这样的东西,所以我要么找错了地方,要么找错了东西


有人能解释一下它为什么会这样吗?

当你用
'/\code>替换你的
'
时,你还做了什么改变吗?请尝试重新运行程序,完全按原样运行,但要删除
/
#
在Python字符串中不是特殊字符

您向我们展示的代码在replace中有一个donothing,因为您的字符串中没有任何
'/#'
的实例

交互式会话示例:

>>> "#foo bar\n\t#blah".replace("#", "")
'foo bar\n\tblah'
试试这个:

[s.lstrip('#\t') for s in file.read().split('\n')]

Python不会以任何方式特别对待字符串中的a,您不需要逃避它。

谢谢您的回复,Nathon。像前面提到的那样删除正斜杠会产生一个空白字符串。也没有其他的改变。@Vulpine:没有复制。显示您的实际文件内容
replace
返回空字符串很特别。在第二个示例中,
replace
只是不替换任何内容,而是返回原始字符串,因为文件中没有
/
序列。#仅在源代码中对Python特殊,而不是在从文件读取的字符串中。