25

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?

5 Answers 5

43
with open('textfile.txt') as old, open('newfile.txt', 'w') as new:
    lines = old.readlines()
    new.writelines(lines[3:-1])
Sign up to request clarification or add additional context in comments.

Comments

19

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

Comments

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

Comments

1
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"

1 Comment

should be f = open('file1.txt').readlines() open('file1.txt', 'w').writelines(f[4:]) instead
-4

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 :)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.