Напишите несколько строк непосредственно перед последней строкой в ​​большом файле, используя Python - PullRequest
0 голосов
/ 28 мая 2018

У меня очень большой файл (5 МБ), и мне нужно добавить несколько строк непосредственно перед последней строкой.например,
file.txt

text-1
text-2
text-3
text-10

После добавления нескольких строк непосредственно перед последней строкой. file.txt

 text-1
 text-2
 text-3
 few-text-1
 few-text-2
 text-10

Как лучше всего это сделать в python.

1 Ответ

0 голосов
/ 28 мая 2018

Очевидно, я не знаю лучшего пути, но вы можете использовать прямой путь.

new_lines = ['one \n', 'two \n']

with open('test.txt', 'r+') as f:
    pos, text = 0, ''
    while True:
        # save last line value and cursor position
        prev_pos, pos = pos, f.tell()
        prev_text, text = text, f.readline()  
        if text == '':
            break

    f.seek(prev_pos, 0) # replace cursor to the last line

    for line in new_lines: # write new lines
        f.write(line)

    f.write(prev_text) # write old last line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...