2010-01-14 21 views

Respuesta

32
lines = open('textfile.txt').readlines() 
open('newfile.txt', 'w').writelines(lines[3:-1]) 
4
data="".join(open("textfile.txt").readlines()[3:-1]) 
open("newfile.txt","wb").write(data) 
-3

solución Sin Python pero ya que su problema es un clásico, les presento una solución de sed.

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

Por supuesto, la dirección de 4,5 sólo funciona exactamente su entrada y salida requerida :)

+0

pero hay una solución muy simple de Python ... – tkbx

13

Ésta no utiliza readlines() por lo que es ideal para archivos de tamaño más grandes.

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

Dado que hay una respuesta de sed, aquí hay un awk uno

$ awk 'NR>=4{if(p)print p;p=$0;}' file 
Fourth Line 
Fifth Line 
1
f = open('file1.txt').readlines() 

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

Este fragmento de código se borrará primero de cuatro líneas de nombre fie "file1.txt"

Cuestiones relacionadas