list - python remove "many" lines from file -


i trying remove specific line numbers file in python in way such

./foo.py filename.txt 4 5 2919

where 4 5 , 2919 line numbers

what trying is:

for in range(len(sys.argv)):     if i>1: # avoiding sys.argv[0,1]         newlist.append(int(sys.argv[i])) 

then:

count=0  generic_loop{     bar=file.readline()    count+=1    if not count in newlist:       print bar } 

it prints lines in original file (with blank spaces in between)

you can try this:

import sys import os filename= sys.argv[1] lines = [int(x) x in sys.argv[2:]]  #open 2 files 1 reading , 1 writing  open(filename) f,open("newfile","w") f2:  #use enumerate line line number, use enumerate(f,1) start index 1     i,line in enumerate(f):           if not in lines:     #`if not in lines` more clear `if not in line`             f2.write(line)    os.rename("newfile",filename)  #rename newfile original 1     

note generation of temporary files it's better use tempfile module.


Comments