Python删除文本指定字符/行

本文通过实例演示了如何使用Python进行文件读写操作及利用RE模块进行文本替换、删除等处理。从基本的文件读写到正则表达式的应用,详细介绍了不同场景下的实现方法。

首先我是初学者,没有找到类似于linux sed替换或者删除一行命令的方法,主要逻辑是读取文件,清空文件,将修改之后的内容再写进去。这种方法问题很多,例如同时操作文件或者文件过大。这只是一种方法。

全文删除:

[admin@pe-jira python]$ cat ming.txt 
9:999:999
1:22222:222
3:33333:222
0:999:999

>>> f = open('ming.txt','r')    
>>> a = f.readlines()
>>> f = open('ming.txt','w')     
>>> for i in a:                   
...     f.write(i.replace("22",""))
... 
10
6
10
10
>>> f.close()

[admin@pe-jira python]$ cat ming.txt 
9:999:999
1:2:2
3:33333:2
0:999:999
[admin@pe-jira python]$	

删除匹配开头行

[admin@pe-jira python]$ cat ming.txt 
9:999:999
1:2:2
3:33333:2
0:999:999
>>> f = open('ming.txt','r')   
>>> a = f.readlines()                         
>>> f = open('ming.txt','w')   
>>> for i in a:
...     if i.startswith('9'):
...             pass
...     else:
...             f.write(i)
... 
6
10
10
>>> f.close()
>>>
[admin@pe-jira python]$ cat ming.txt 
1:2:2
3:33333:2
0:999:999
[admin@pe-jira python]$

re正则全文删除

[admin@pe-jira python]$  cat ming.txt        
9:999:9998
3:33333:2
0:999:99999
>>> import re
>>> s = re.sub(r"999",'',a)
>>> s
'9::\n3:33333:2\n0::\n'
>>> f = open('ming.txt','w')
>>> f.write(s)
18
>>> f.close()
>>> import re
>>> f = open('ming.txt','r')
>>> a = f.read()
>>> s = re.sub(r"999",'',a)
>>> f = open('ming.txt','w')
>>> f.write(s)              
21
>>> f.close()               
>>>


[admin@pe-jira python]$  cat ming.txt 
9::8
3:33333:2
0::99
[admin@pe-jira python]$

re正则只删除第一个匹配的

[admin@pe-jira python]$  cat ming.txt        
9:999:9998
3:33333:2
0:999:99999

>>> import re
>>> f = open('ming.txt','r')
>>> a = f.read()            
>>> s = re.sub(r"999",'',a,1)
>>> s
'9::9998\n3:33333:2\n0:999:99999\n'
>>> f = open('ming.txt','w') 
>>> f.write(s)               
30
>>> f.close()                
>>>
[admin@pe-jira python]$  cat ming.txt 
9::9998
3:33333:2
0:999:99999
[admin@pe-jira python]$

 

转载于:https://www.cnblogs.com/wangxu01/articles/6913090.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值