Как удалить последнюю строку из файла в Python?

Пользователь

от stephania , в категории: Python , 3 года назад

Как удалить последнюю строку из файла в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jensen , 3 года назад

@stephania Вы можете использовать код ниже как пример. Как вариант Вы можете прочитать файл, за исключением последней линии и затем перезаписать его, пример ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
filename = "test.txt"

with open(filename, 'r') as file:
    lines = file.readlines()
    if len(lines) > 0:
        rows = lines[:len(lines) - 1]
    else:
        rows = []

with open(filename, "w") as file:
    file.writelines(rows)


Пользователь

от roxanne.hauck , 2 года назад

@stephania 

В Python, можно использовать модуль os и модуль tempfile для удаления последней строки из файла. Основной идеей является то, что вы открываете файл, проходите через его строки, за исключением последней, и записываете их во временный файл, а затем используете os.replace() чтобы заменить оригинальный файл новым.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import os
import tempfile

filename = "file.txt"

with open(filename, "r") as f:
    lines = f.readlines()

with tempfile.NamedTemporaryFile(mode="w", delete=False) as f:
    for line in lines[:-1]:
        f.write(line)
    tempname = f.name

os.replace(tempname, filename)


В приведенном коде, мы используем with open(filename, "r") as f: для открытия файла в режиме чтения. После этого, мы используем lines = f.readlines() для чтения всех строк из файла и записи их в переменную lines. Затем мы используем tempfile.NamedTemporaryFile() для создания временного файла для записи в него всех строк, кроме последней, и используем os.replace(tempname,