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

标签 python python-3.x file file-manipulation

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

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

请注意,初始文件有两行:Initial File

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

请注意,文件的最后一个文本/行被删除,但有多余的空行:enter image description here

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

我的目标是删除多余的行。预先感谢您!

最佳答案

原因是换行符不是来自'Orange'行,而是来自'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打开文件,防止文件对象泄露
  • 在读/写模式下对 open 进行一次调用(这更多是风格问题)

file.csv的内容:

Blue

关于python - Writeline() 在文件末尾添加空行 [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550435/

相关文章:

c - 如何实现 IF 来检测文件读取时的最后一个字节?

c++ - 如何在 C++ 中将对象写入文件

python - 有条件写入文件的最有效方法?

python - 无法抓取所有评论

python-3.x - SQLalchemy,为什么flask 设置Base.query?

python - 基于正则表达式识别列并填充不同默认值的优雅方法

c++ - 我该如何优化这段代码? (Qt5)

python - 使用 python 在 tkinter 中的图片上添加文本输入小部件

python - 如何使用 python 从路径中拆分文件名?

Python将二进制文件转换为字符串同时忽略非ascii字符