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

使用 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(“文本已替换”)




输出:



文本已替换




![在这里插入图片描述](https://img-blog.csdnimg.cn/d4ba4705559646c6a7c00dc86ee36622.png)



[]( )方法二:使用 pathlib2 模块搜索和替换文本

------------------------------------------------------------------------------------



让我们看看如何使用 pathlib2 模块搜索和替换文本。首先,我们创建一个文本文件,我们要在其中搜索和替换文本。将此文件设为 Haiyong2.txt,内容如下:  

![在这里插入图片描述](https://img-blog.csdnimg.cn/7ab709ff4403471395206722329da2d3.png)



使用以下命令安装 pathlib2 模块:



pip install pathlib2




![在这里插入图片描述](https://img-blog.csdnimg.cn/f84e7c8ef87d4dd59eb4278b95236b5e.png)  

该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。要使用 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))




**输出:**



文本已替换




![在这里插入图片描述](https://img-blog.csdnimg.cn/99c65dd50d3248d3b55f292660dcaee3.png)



[]( )方法 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))




输出:



文本已替换




![在这里插入图片描述](https://img-blog.csdnimg.cn/8a35cb2c38794910a797b33754055576.png)



[]( )方法四:使用文件输入

---------------------------------------------------------------------



让我们看看如何使用 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,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

.(img-CrESOP2F-1713213099279)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值