【问题标题】:erase a linebreak from a string in python从python中的字符串中删除换行符
【发布时间】:2022-01-23 18:36:56
【问题描述】:

我正在使用 python 中的 .txt 文件。

我在文本文件中有换行符。示例:

line1
line2

我需要去掉这些换行符才能让我的代码正常工作。

我尝试了所有方法:text.replace("\n", ""),当它不起作用时,我写出了字符串中每个字符的 ord(),发现换行符是 10,所以我尝试了text.replace(chr(10), ""),即使那样没有用,我什至写了一个糟糕的循环,出于绝望,用空字符串替换了 ord() == 10 的字符。

没有任何作用。

请帮忙,我真的需要摆脱那些换行符。

我很绝望。

谢谢。

编辑:我需要常规空格 (" ") 留在我的文本文件中。

【问题讨论】:

  • 只要不带参数调用str.rstrip(),它将清除所有空格(包括换行符)。
  • @OlvinR​​oght 它也会去掉常规空格吗?我需要那些留在我的文本文件中......
  • 然后用'\r\n'调用它
  • rstrip 删除行尾的尾随空格,因此您不必担心它会删除其他空格字符。这通常用于删除行尾的 '\n' 和 '\r\n'。

标签: python string text replace line-breaks


【解决方案1】:

replace 函数应该可以工作,我不知道为什么它不适合你:

with open("test.txt", "r") as test:
    for line in test:
        print(line.replace("\n", ""))

注意:由于 Python 在使用 print 函数时会打印一个换行符,所以它看起来好像换行符仍然存在。

【讨论】:

  • 谢谢!它似乎奏效了!我不知道为什么这个 for 循环有效,而简单的 replace() 没有,但非常感谢!
  • @Mymokol 您可以防止print 使用end='' 添加换行符。
  • 而且不用打readlines,直接用for lines in test:即可。
  • @MarkRansom 哎呀,我的错。谢谢,我不知道你能做到这一点。我已经修复了帖子。
  • 答案被接受,但它是错误的。要删除尾随字符,您应该使用.rstrip(),因为.replace() 将遍历所有字符串。
猜你喜欢
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2012-10-29
  • 1970-01-01
相关资源
最近更新 更多