python正则操作大文件
打开文件的模式说明
打开文件的模式有(默认为文本模式):
模式 说明
r 只读模式,也是默认模式,文件必须存在,不存在则跑出异常;
w 只写模式,不可读;不存在则创建,存在的话如果有进行写入动作则清空文件内容并写入新内容,如果没有写入动作则只打开不清空文件;
a 只追加模式,不可读,不存在则创建,存在则只在末尾追加内容;
修改文件内容方法一
import os
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
data=read_f.read() #全部读入内存,如果文件很大,会很卡
data=data.replace('test','test2') #在内存中完成修改
write_f.write(data) #一次性写入新文件
修改文件内容方法二
硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件;
import os
with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:
for line in read_f:
line=line.replace('test','test2')
write_f.write(line)
os.remove('a.txt')
os.rename('.a.txt.swap','a.txt')
正则表达式
介绍
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符以及这些特定字符的组合,组成一个“规则字符串”,这个规则字符串用来表达对字符串的一种过滤逻辑;
特点
a.逻辑性、灵活性和功能性非常强;
b.可以迅速用极简的方式达到字符串的复杂控制;
c.对于刚接触的人来说,比较晦涩难懂
场景
a.从大段的文字中找到符合规则的内容;
b.爬虫,从网页的字符串中获取你想要的数据;
c.日志分析,提取所需要的数据;
d.判断某个字符串是否完全符合规则:比如表单验证:手机号、QQ号、邮箱、银行卡、身份证。。。
正则表达式的规则:
制定好正则表达式的规则,然后从指定的字符串中找到符合规则的子串;
python中的正则表达式分类
a.元字符 b.模式 c.函数 d.re内置对象用法 e.分组用法 f.环视用法
所有关于正则表达式的操作都使用python标准库的re模块;