.replace()在一个不替换值的字符串中

时间:2014-03-17 23:26:02

标签: python

我已将URL请求的二进制结果转换为文本字符串,然后尝试使用以下代码将'\ n'的实例替换为'',将'\ n'替换为'':

newvar = str(oldvar)
newvar.replace('\r', '')
newvar.replace('\n', ' ')

但是,当变量newvar打印到日志并写入文件时,它会保留'\ r'和'\ n'。我究竟做错了什么?我正在使用建议的确切语法,并且我已经在线阅读。

由于

4 个答案:

答案 0 :(得分:4)

replace没有修改字符串,因为字符串是不可变的;它会创建一个新字符串,您需要指定它:

newvar = newvar.replace('\r, '')

答案 1 :(得分:0)

你需要set var来做到这一点:

newvar = str(oldvar)
newvar = newvar.replace('\r', '')
newvar = newvar.replace('\n', ' ')

然后打印:

print newvar

答案 2 :(得分:0)

我们的想法是将替换项分配给现有的变量:

newvar = (str(oldvar))
newvar = newvar.replace('\r','')
newvar = newvar.replace('\n','')

答案 3 :(得分:0)

与许多问题一样,这归结为阅读友情Manual

  

str.replace(old,new [,count])

     

返回字符串的副本 [emphasis mine] ,其中所有出现的substring old都替换为new。如果给出了可选参数计数,则仅替换第一次计数出现次数。

这不会改变字符串。 返回字符串的副本,已修改。