【问题标题】:Remove newline at the end of a file in python在python中删除文件末尾的换行符
【发布时间】:2021-12-05 11:31:11
【问题描述】:

我正在使用 python 修改一个可能已经包含如下换行符的文件:

#comment
something

#new comment
something else

我的代码在此文件中添加了一些行,我还在编写将删除我添加的内容的代码(如果文件中发生其他修改,理想情况下也可以工作)。

目前,每次我在文件末尾使用换行符应用代码(追加/删除)时,我都会得到一个文件。

我正在寻找一种干净的方法来删除这些换行符,而无需太多的程序复杂性。文件“内部”的换行符应该保留,文件末尾的换行符应该被删除。

【问题讨论】:

  • 更改添加/附加换行符的代码,使其不再在内容后附加换行符。
  • @luk2302 不是一个选项,我希望将此文件中的编辑分开以提高可读性。您提供的是我已经使用过的解决方法,我现在正在尝试改进我的代码。
  • 然后再次读取整个文件并从字符串中删除一个尾随换行符,然后将字符串写回文件。
  • 这就是我所说的“程序过于复杂”,我知道我可以轻松地读回文件,跟踪换行符,如果后面有一些非空行,则保留它等等。 .我正在寻找的是另一种可能的方式来做更少的代码行。由于我是 python 新手,我可能不知道实现这一点的简单方法,比如巧妙地使用 rstrip。

标签: python newline


【解决方案1】:

使用str.rstrip()方法:

my_file =  open("text.txt", "r+")
content = my_file.read()
content = content.rstrip('\n')
my_file.seek(0)

my_file.write(content)
my_file.truncate()
my_file.close()

【讨论】:

  • 看起来像我要找的东西,我会尽快检查是否可以 my_file.write(content) 重写修改后的内容
  • “尽快检查”是什么意思?
  • 我刚刚更新了我的帖子。希望对您有所帮助。
  • 哦,对了,我不知道这个 r+ 模式。谢谢!
  • 实际上,我最终得到了文件内容的两倍,'write' 附加到文件中。
猜你喜欢
  • 2013-04-28
  • 2012-01-27
  • 1970-01-01
  • 2022-08-17
  • 2011-09-09
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多