2010-01-14 17 views
17

ile textfile satırları kaldırın:Böyle bir TextFile.txt sahip piton

First Line 
Second Line 
Third Line 
Fourth Line 
Fifth Line 
Sixth Line 

nasıl en rahat ilk üç satırı ve son satırı kaldırabilirim? Teşekkürler!

cevap

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

Yok Python çözümü ancak sorunun bir klasik beri, sana sed çözüm sunmak. Adres 4,5 sadece tam olarak giriş ve gerekli çıkışı :) için çalışan Tabii

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

+0

"file1.txt" yuh adından ilk dört satırını silecektir var Ama orada çok basit Python çözümü ... – tkbx

13

Bu seferki readlines() kullanmaz bu nedenle büyük ölçekli dosyalar için idealdir. Bir sed yanıt var yana

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

, burada awk

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

Bu kod parçacığı