本文介绍超大文件批量替换字符
一般遇到超大文件读取,最好使用line去一行行读取,不然直接读取全部,内容过大,容易死机。
代码如下:
# coding=utf-8
file_path = "" # 文件路径
with open(file_path, "r", encoding="utf-8") as f:
for line in f:
print(line)
这样的话文件就是一行行读取打印。下面我们将代码进行封装,读取的文件一行行去批量替换字符,再将替换好的新文本写入。
代码如下:
# coding=utf-8
def batch_replace(file_path, old_str, new_str):
"""
批量替换文本字符
:param file_path:文件绝对路径
:param old_str:旧字符串
:param new_str:新字符串
:return:
"""
file_data = "" # 初始化
with open(file_path, "r", encoding="utf-8") as f:
for line in f: # line一行行读取替换文本
if old_str in line:
line = line.replace(old_str, new_str)
file_data += line
with open(file_path, "w", encoding="utf-8") as f: # 写入替换好的文本
f.write(file_data)
print('批量替换完成')