- 论坛徽章:
- 0
|
这个方法应该可以:
为了省事,代码没加异常控制,只写个大概流程
情况1)
知道要删除行的行号:- import os
- DELNUM=2
- i=1
- openFileHandle=open('filename','r')
- writeFileHandle=open('Temp','w')
- while 1:
- line=openFileHandle.readline()
- if line:
- if i==DELNUM:
- i=i+1
- print "找到%d行:%s"%(DELNUM,line)
- continue
- else:
- i=i+1
- writeLine='%s\n'%line
- writeFileHandle.write(writeLine)
- else:
- print "匹配%d行失败,文件已到末尾"%DELNUM
- break
- openFileHandle.close()
- writeFileHandle.close()
- os.remove('filename')
- os.rename('Temp','filename')
- print "All Done!"
复制代码 代码介绍,从DELNUM行开始:
#要删除行的行号,假设为2
#设个计数器,计录当前到了第几行
#打开要操作的文件
#新建一个中间文件,用于写入除第2行的所有行
#进入主循环
#如果文件没到末尾,并且当前记录的行号不是要删除的行号,将该行写入Temp
#如果是要删除的行,打印行号及该行内容,不写入Temp,进入下一循环
#如果读到文件末尾,跳出主循环
#关闭文件句柄
#用Temp文件替换filename,得到删除了DELNUM行的文件
情况2)
知道要删除行的某一特征:
将1中的行号判断改成正则表达式,匹配成功,不写入Temp
不成功,写入Temp,其他一样 |
|