-1

I have a very large file(5 MB) and I need to add few lines just before the last line. e.g.
file.txt

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

After adding few lines just before the last line. file.txt

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

What are best ways to do it in python.

shubham12511
  • 620
  • 1
  • 9
  • 25

1 Answers1

1

Clearly, I don't know the best way, but you can use direct way.

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
NobbyNobbs
  • 1,341
  • 1
  • 11
  • 17