删除python中的\ r \ n

时间:2015-02-09 19:59:41

标签: python

我需要删除mylist上的\ r \ n。

print mylist
>>> [1, '\r\nabc   Fa              153             M   Wa 3\r\n']

我做了

lst = [txt.replace("\r\n", "") for txt in mylist]

但我得到以下错误

AttributeError: 'int' object has no attribute 'replace'

3 个答案:

答案 0 :(得分:4)

您可以使用三元表达式跳过尝试replace任何不属于字符串的内容。

lst = [txt.replace("\r\n", "") if isinstance(txt, str) else txt for txt in mylist]

答案 1 :(得分:1)

您可以从开头和结尾剥离数据:

l = [1, '\r\nabc   Fa              153             M   Wa 3\r\n']

print([x.strip() if isinstance(x, basestring ) else x for x in l ]) 
[1, 'abc   Fa              153             M   Wa 3']

如果可能的话,更好的解决方案是在将行添加到列表之前进行剥离。

答案 2 :(得分:0)

您的第一项是int,第二项是str。如果要混合使用各种类型,可以在列表推导中使用str.strip()来处理剥离字符串。

>>> mylist = [1, '\r\nabc   Fa              153             M   Wa 3\r\n']
>>> mylist = [i.strip() if isinstance(i, basestring) else i for i in mylist]
>>> mylist
[1, 'abc   Fa              153             M   Wa 3']