2010-01-14 57 views

risposta

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

soluzione No Python, ma dal momento che il problema è un classico, vi presento una soluzione sed.

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

Naturalmente l'indirizzo 4,5 funziona solo per esattamente l'input e l'output richiesto :)

+0

ma c'è un soluzione Python molto semplice ... – tkbx

13

Questo non usa readlines() ed è quindi ideale per i file più grandi dimensioni.

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

Dal momento che c'è una risposta sed, ecco 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:]) 

Questo frammento di codice cancellerà prima linea a quattro dal nome fie "file1.txt"

Problemi correlati