Writeline() 在文件末尾添加空行 [Python]

Writeline() add empty line at end of file [Python]

这是我删除文件最后一行的代码,但在将其重写到同一个文件后,存在一个额外的空行。

lines = open('file.csv', 'r').readlines() 
del lines[-1] 
open('file.csv', 'w').writelines(lines) 

注意初始文件有两行:

 Orange[1st line of csv]
 Blue[2nd line of csv]

注意文件的最后一个text/line被删除了,但是多了一个空行:

 Orange[1st line of csv]
 [2nd line still exist but empty]

我的目标是删除多余的行。提前致谢!

原因是换行不是来自'Orange'行,而是来自'Blue'行,实际上是'Blue\n'.

因此,你应该这样做:

with open('file.csv', 'r+') as f:
    lines = f.readlines()[:-1]
    lines[-1] = lines[-1].strip()
    f.seek(0)
    f.writelines(lines)
    f.truncate()

特别注意:

  • 使用with打开文件防止文件对象泄露
  • 在 read/write 模式下对 open 的一次调用(这更多是一种风格问题)

file.csv 的内容:

Blue