Remove lines from a textfile?

I have a textfile.txt like this:

First Line
Second Line
Third Line
Fourth Line
Fifth Line
Sixth Line

How can I remove the first three lines and the last line most comfortable?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

with open('textfile.txt') as old, open('newfile.txt', 'w') as new:
    lines = old.readlines()
    new.writelines(lines[3:-1])

Method 2

This one doesn’t use readlines() so it is ideal for bigger sized files.

numline=3 #3 lines to skip
p=""
o=open("output.txt","a")
f=open("file")
for i in range(numline):
    f.next()
for line in f:
    if p:
        o.write(p)
    p=line
f.close()
o.close()

Since there’s a sed answer, here’s an awk one

$ awk 'NR>=4{if(p)print p;p=$0;}' file
Fourth Line
Fifth Line

Method 3

data="".join(open("textfile.txt").readlines()[3:-1])
open("newfile.txt","wb").write(data)

Method 4

f = open('file1.txt').readlines()

open('file1.txt', 'w').writelines(lines[4:])

This code snippet will delete first four line from fie name “file1.txt”

Method 5

No Python solution but since your problem is a classic, I present you a sed solution.

$ sed -n -e "4,5p" textfile.txt

Of course the address 4,5 only works for exactly your input and required output 🙂


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x