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
这是我删除文件最后一行的代码,但在将其重写到同一个文件后,存在一个额外的空行。
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