Writeline () добавить пустую строку в конец файла [Python] - PullRequest
1 голос
/ 06 апреля 2019

Это мой код для удаления последней строки файла, но после перезаписи его в тот же файл существует дополнительная пустая строка.

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]

Моя цель - удалить лишнюю строку. Заранее спасибо!

1 Ответ

1 голос
/ 06 апреля 2019

Причина в том, что новая строка не из строки с 'Orange', а скорее из строки с 'Blue', которая на самом деле 'Blue\n'.

Соответственно, вы должны сделать что-то вродеthis:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...