方法 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))
输出:
文本已替换