Python删除文档中含关键字的行

背景:今天一同事让我帮忙处理一下文件里含有----+符号的行。如图所示:


   里面文档好几百行,一行一行去删除,肯定是又浪费时间,又没效率的事情。这时候可以使用Python脚本去处理!


一 设计思路

     其实这个很有规律的,它的开头是以“—”开头,先使用readlines方法读取每一行,然后每一行进行正则匹配,匹配成功的行就直接删除!


二 程序代码

#coding:utf-8
import re
import sys
import os

f=open('ticonf.old.txt','r+')
line=f.readlines()
f1=open('new.txt','w+')
f2=open('ticonf.det.txt','w')

print "Now I will to delete ---+"

try:
for i in range(0,len(line)):
if re.match(r'^\-',line[i]):
del line[i]
print "delete line",i
else:
print "Writing",i
f1.write(line[i])
except IndexError:
print "pass"

line1=f1.readline()
flag=0
try:
for i in range(0,len(line1)):
if re.match(r'^ACC_NUM',line[i]):
flag+=1
if flag>3:
del line[i]
else:
continue
else:
f2.write(line[i])
except IndexError:
print "pass"
print flag
print "delete new.txt"
try:
os.remove( 'new.txt' )
except WindowsError:
pass

f.close()
f2.close()

print "finish to delete ---+"



三  程序结果



四  总结和感悟

问题1 之前使用的是readline的但是读取的行数总是错误,原因是readline返回一行的字符串, readlines返回包含文件所有内容的字符串列表, 每个元素是一行的字符串,

问题2 之前想得出的结果直接在原来的文本上修改,但是程序运行成功,文本内容却没有变化,查了一下才知道修改后的文档都存在line里面,因为他是一个数组,所以才写了个文档保存到里面去

问题3 运行的时候总是报范围错误,于是就用try...except函数把错误过滤掉。

问题4 正则匹配得好好学


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值