Python中搜索和替换文件中的文本的实现(四种)
在本文中,我将给大家演示如何在 python 中使用四种方法替换文件中的文本。
方法一:不使用任何外部模块搜索和替换文本
让我们看看如何在文本文件中搜索和替换文本。首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 haiyong.txt,内容如下:
要替换文件中的文本,我们将使用 open() 函数以只读方式打开文件。然后我们将 t=read 并使用 read() 和 replace() 函数替换文本文件中的内容。
语法: open(file, mode=‘r')
参数:
file:文件的位置
mode : 要打开文件的模式
然后我们会以写模式打开同一个文件,写入替换的内容。
# 创建一个变量并存储我们要搜索的文本 search_text = "资源" # 创建一个变量并存储我们要添加的文本 replace_text = "进群" # 使用 open() 函数以只读模式打开我们的文本文件 with open(r'haiyong.txt', 'r',encoding='utf-8') as file: # 使用 read() 函数读取文件内容并将它们存储在一个新变量中 data = file.read() # 使用 replace() 函数搜索和替换文本 data = data.replace(search_text, replace_text) # 以只写模式打开我们的文本文件以写入替换的内容 with open(r'haiyong.txt', 'w',encoding='utf-8') as file: # 在我们的文本文件中写入替换的数据 file.write(data) # 打印文本已替换 print("文本已替换")
输出:
文本已替换
方法二:使用 pathlib2 模块搜索和替换文本
让我们看看如何使用 pathlib2 模块搜索和替换文本。首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 haiyong2.txt,内容如下:
使用以下命令安装 pathlib2 模块:
pip install pathlib2
该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。要使用 pathlib2 模块替换文本,我们将使用 pathlib2 模块的 path 方法。
语法:路径(文件)
参数:
file:要打开的文件的位置
在下面的代码中,我们将文本文件中的“获取更多学习资料”替换为“找群主领取一本实体书”。使用 pathlib2 模块。
代码:
# 从 pathlib2 模块导入路径 from pathlib2 import path # 创建一个函数来替换文本 def replacetext(search_text, replace_text): # 使用path函数打开文件 file = path(r"haiyong2.txt") # 读取文件内容并将其存储在数据变量中 data = file.read_text() # 使用替换功能替换文本 data = data.replace(search_text, replace_text) # 在文本文件中写入替换的数据 file.write_text(data) # 返回“文本已替换”字符串 return "文本已替换" # 创建一个变量并存储我们要搜索的文本 search_text = "python" # 创建一个变量并存储我们要更新的文本 replace_text = "java" # 调用replacetext函数并打印返回的语句 print(replacetext(search_text, replace_text))
输出:
文本已替换
方法 3:使用正则表达式模块搜索和替换文本
让我们看看如何使用 regex 模块搜索和替换文本。我们将使用 re.sub() 方法来替换文本。
语法: re.sub(pattern, repl, string, count=0, flags=0)
参数:
repl :要添加的文本
string :要替换的文本
代码:
# 导入 re 模块 import re # 创建一个函数来替换文本 def replacetext(search_text,replace_text): # 以读写模式打开文件 with open('samplefile.txt','r+') as f: # 读取文件数据并将其存储在文件变量中 file = f.read() # 用文件数据中的字符串替换模式 file = re.sub(search_text, replace_text, file) # 设置位置到页面顶部插入数据 f.seek(0) # 在文件中写入替换数据 f.write(file) # 截断文件大小 f.truncate() # 返回“文本已替换”字符串 return "文本已替换" # 创建一个变量并存储我们要搜索的文本 search_text = "world" #创建一个变量并存储我们要更新的文本 replace_text = "universe" # 调用replacetext函数并打印返回的语句 print(replacetext(search_text,replace_text))
输出:
文本已替换
方法四:使用文件输入
让我们看看如何使用 fileinput 模块搜索和替换文本。为此,我们将使用 fileinput() 方法迭代文件的数据并替换文本。
语法: fileinput(files=none, inplace=false, backup=”, *, mode=‘r')
参数:
- files : 文本文件的位置
- mode : 要打开文件的模式
- inplace :如果值为 true 则文件被移动到备份文件并且标准输出被定向到输入文件
- backup : 备份文件的扩展名
代码:
# 从文件输入模块导入文件输入 from fileinput import fileinput # 创建一个函数来替换文本 def replacetext(search_text, replace_text): # 使用 fileinput 打开文件 with fileinput("haiyong4.txt", inplace=true, backup='.bak') as f: # 使用replace函数迭代每个并使用replace_text更改search_text for line in f: print(line.replace(search_text, replace_text), end='') # 返回“文本已替换”字符串 return "文本已替换" # 创建一个变量并存储我们要搜索的文本 search_text = "unreplaced" # 创建一个变量并存储我们要更新的文本 replace_text = "replaced" # 调用replacetext函数并打印返回的语句 print(replacetext(search_text, replace_text))
输出:
文本已替换
到此这篇关于python中搜索和替换文件中的文本的实现(四种)的文章就介绍到这了,更多相关python 搜索和替换文本内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 详谈lastIndex对正则结果的影响
下一篇: Replace中的正则表达式