相关文章推荐
失恋的汽水  ·  地球气候系统中的因果推断 | ...·  2 月前    · 
紧张的热带鱼  ·  如何在捕获信号后终止time.sleep() ...·  1 年前    · 
睡不着的橡皮擦  ·  如何在AJAX GET请求后重定向到HTML页面·  1 年前    · 
追风的铁链  ·  Qt判断手机号码:匹配手机号码的正则_qre ...·  1 年前    · 
害羞的领带  ·  【每日鲜蘑】Unable to ...·  2 年前    · 
Code  ›  如何在 Python 中搜索和替换文件中的文本?开发者社区
python replace text函数 replace函数
https://cloud.tencent.com/developer/article/1891613
豪爽的烤面包
2 年前
作者头像
海拥
0 篇文章

如何在 Python 中搜索和替换文件中的文本?

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 全栈技术 > 如何在 Python 中搜索和替换文件中的文本?

如何在 Python 中搜索和替换文件中的文本?

作者头像
海拥
发布 于 2021-10-20 17:02:20
6.8K 0
发布 于 2021-10-20 17:02:20
举报

在本文中,我将给大家演示如何在 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:使用正则表达式模块搜索和替换文本

方法 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"
 
推荐文章
失恋的汽水  ·  地球气候系统中的因果推断 | 周二直播·地球系统科学读书会 | 集智俱乐部
2 月前
紧张的热带鱼  ·  如何在捕获信号后终止time.sleep()?-腾讯云开发者社区-腾讯云
1 年前
睡不着的橡皮擦  ·  如何在AJAX GET请求后重定向到HTML页面
1 年前
追风的铁链  ·  Qt判断手机号码:匹配手机号码的正则_qregexp 电话号码-CSDN博客
1 年前
害羞的领带  ·  【每日鲜蘑】Unable to acquire JDBC Connection? - 掘金
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号