2010-01-14 175 views

回答

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

没有Python的解决方案,但因为你的问题是一个经典,我为您呈现SED解决方案。

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

当然的地址4,5只适用于你的准确输入所需的输出:)

+0

但有一个很简单的Python解决方案... – tkbx 2012-12-12 16:20:18

13

这一个不使用readlines方法(),所以它非常适合于大尺寸的文件。

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

因为有一个SED的答案,这里是一个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:]) 

此代码段将删除外商投资企业名称“FILE1.TXT”前四线