Как писать на второй строке текстового файла, игнорируя первую строку?

Я хочу записать в текстовый файл со второй строки.

На данный момент для записи данных в текстовый файл я использую:

with open("data1.txt", "w") as file:

    file.write(str(round(strength, 2)) + "\n")

file.close()

«Сила» как в значении (Число)

Чтобы прочитать из определенной строки (в данном случае второй строки) из текстового файла:

with open("data1.txt", "r", encoding="utf-8") as file:

    S1 = file.readlines()
    S1 = float(S1[1].strip())
file.close()

Как я могу записать в файл со второй строки, начиная с:

with open("data1.txt", "w+", encoding="utf-8") as file:

Я знаю, что для записи с начала текстового файла мне нужно использовать:

file.seek(0)

Как заменить/изменить/записать со второй строки?


person Community    schedule 22.03.2014    source источник


Ответы (2)


Сначала нужно прочитать файл:

with open("file.txt", "r") as file:
    lines = file.readlines()

Затем измените вторую строку:

lines[1] = str(round(strength, 2)) + "\n"

Затем напишите все обратно:

with open("file.txt", "w") as file:
    for line in lines:
        file.write(line)
person abacabadabacaba    schedule 22.03.2014
comment
Нет, блок with закроет для вас файл. - person abacabadabacaba; 22.03.2014

Один из способов сделать это — прочитать первую строку с помощью file.readline(), подсчитать количество символов в первой строке с помощью len(file.readline()), а затем использовать file.seek(len(file.readline()) + 1), чтобы начать писать с этой позиции, то есть со следующей строки.

Возможно, вам придется изменить +1, я этого не проверял.

person nagyben    schedule 22.03.2014
comment
см. абакабу... как бы его ни звали - его ответ - person nagyben; 22.03.2014