我有一些文本数据打印出实际字符“\ r \ n”(所以总共四个字符)。我想用单个“\ n”字符替换这四个字符,但我似乎无法让Python为我做。我目前正在尝试:用“ n”代替“ r n”
mytext.replace("\r\n", "\n")
但是,只是打印出“\ n”(两个字符,而不是一个)。我觉得我可能错过了一些显而易见的东西,但任何帮助将不胜感激。
我有一些文本数据打印出实际字符“\ r \ n”(所以总共四个字符)。我想用单个“\ n”字符替换这四个字符,但我似乎无法让Python为我做。我目前正在尝试:用“ n”代替“ r n”
mytext.replace("\r\n", "\n")
但是,只是打印出“\ n”(两个字符,而不是一个)。我觉得我可能错过了一些显而易见的东西,但任何帮助将不胜感激。
我会建议使用splitlines,而不是一个正则表达式或查找/替换
"\n".join(mytext.splitlines())
这应该是解决方案 – geotheory 2015-12-19 13:29:10
对不起,我误解你的问题:
在这种情况下,你应该AR前缀的字符串使用原始字符串:
mytext.replace(r"\r\n", r"\n")
然后删除2将不会帮助/ – Stals 2012-08-16 14:38:03
mytext.replace(r"\r\n", r"\n")
的 'R' 表示一个原始字符串,它告诉python将文本中的反斜杠解释为文字字符而不是转义字符。
这对我没有帮助(ubuntu) – geotheory 2015-12-19 13:27:53
"\n".join(mytext.splitlines())
这对我的作品。 mytext.replace(r"\r\n", r"\n")
,这不行。
这是一个解决方案,如果以上任何一个都不起作用(这是我使用Python3的Anaconda分布的情况)。
mytext.replace("\\r\\n", "\\n")
这与\被用作转义字符有关。我认为使用原始字符串格式化程序的上述答案可以达到同样的效果,但无论出于何种原因,这对我来说都不起作用,而且确实如此。
如果它是一个文件,你可以用'open(file_name,'rU')'来读取它们,如果“\ r \ n”是4个字符,那么它们全都是''\ n'' – jamylak 2012-08-16 14:35:05