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