2010-01-14 26 views
17

Tôi có một textfile.txt như thế này:Di chuyển dòng từ textfile với python

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

Làm thế nào tôi có thể loại bỏ ba dòng đầu tiên và dòng cuối cùng cảm thấy thoải mái nhất? Cảm ơn!

Trả lời

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

Không Python giải pháp nhưng vì vấn đề của bạn là một cổ điển, tôi giới thiệu bạn một giải pháp sed.

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

Tất nhiên địa chỉ 4,5 chỉ làm việc cho chính xác đầu vào của bạn và sản lượng yêu cầu :)

+0

Nhưng có một giải pháp Python rất đơn giản ... – tkbx

13

một này không sử dụng readlines() nên rất lý tưởng cho các tập tin có kích thước lớn hơn.

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

Vì có một câu trả lời sed, đây là một awk một

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

Đoạn mã này sẽ xóa bốn dòng đầu tiên từ tên fie "file1.txt"

Các vấn đề liên quan