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

海拥* 2021-10-25 20:06:58
Python 搜索 何在 替换 换文

作者主页:海拥
作者简介:CSDN全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十
粉丝福利:粉丝群 每周送四本书,每月送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等)

直接跳到末尾 去评论区领书

在本文中,我将给大家演示如何在 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"
# 创建一个变量并存储我们要更新的文本
replace_text = "replaced"
# 调用replacetext函数并打印返回的语句
print(replacetext(search_text, replace_text))

输出:

文本已替换

评论区抽粉丝送书啦

欢迎大家在评论区提出意见和建议!(抽两位幸运儿送书,实物图如下)

在这里插入图片描述

《机器学习线性代数基础:Python语言描述》

【内容简介】

《机器学习线性代数基础:Python语言描述》的优势:本书以机器学习涉及的线性代数核心知识为重点,进行新的尝试和突破:从坐标与变换、空间与映射、近似与拟合、相似与特征、降维与压缩这5个维度,环环相扣地展开线性代数与机器学习算法紧密结合的核心内容。
本书适合实践于数据分析、信号处理等工程领域的读者,也适合在人工智能、机器学习领域进行理论学习和实践,希望筑牢数学基础的读者,以及正在进行线性代数课程学习的读者阅读。

也有不想靠抽,想自己买的同学可以参考下面的链接

京东自营购买链接:

《机器学习线性代数基础 Python语言描述》- 京东图书

当当自营购买链接:

《机器学习线性代数基础 Python语言描述》- 当当图书

注意:

大家点赞关注,三天后也就是 10月21日 从评论区留言的同学中抽取两位送书

面试题库:Java、Python、前端核心知识点大全和面试真题资料
电子图书:图灵程序丛书 300本、机械工业出版社6000册免费正版图书
办公用品:精品PPT模板几千套,简历模板一千多套
学习资料:2300套PHP建站源码,微信小程序入门资料

如果中奖了联系不上则视为放弃,可以从下方公众号里找到作者的联系方式,每周都会送四本书,后面送书力度还会加大,一年送几百上千本不是问题,回复【进群】领书不迷路,群内 每位成员 我都会送一本。回复【资源】可获取上面的资料

版权声明
本文为[海拥*]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44273429/article/details/120820214

  1. Python + sélénium implémente le téléchargement automatique et la publication d'une démonstration d'instance vidéo courte et belle
  2. Python爬虫能当副业吗?到了哪个层次能接单?解析能挣钱的方式
  3. 大佬今天教你用python制作五款简单又好玩的小游戏
  4. Les reptiles Python peuvent - ils être une entreprise secondaire? À quel niveau les commandes peuvent - elles être reçues? Analyse des moyens de gagner de l'argent
  5. Python+微信小程序开发(五)for指令和上传图片
  6. Python+微信小程序开发(四)页面跳转和获取用户信息
  7. Python+微信小程序开发(三)开发小程序及页面布局
  8. If I had these resources when I first learned python, I wouldn't have been tortured for so long!
  9. If you want to learn Python well, [container / iteratable object / iterator / generator] must learn Python steadily!
  10. 用Python定义一个函数用于比较两个数并返回较大的数
  11. 用Python定義一個函數用於比較兩個數並返回較大的數
  12. Définir une fonction en python pour comparer deux nombres et renvoyer un nombre plus grand
  13. python自定义错误self.args是什么意思
  14. Que signifie Python Custom Error self.args
  15. 用python编写一个用n填充列表的程序
  16. 用python編寫一個用n填充列錶的程序
  17. Écrivez un programme qui remplit la liste avec n en python
  18. 你需要知道的 20 个 Python 技巧
  19. Python development learning how to quickly enter the programming industry
  20. 20 conseils Python que vous devez connaître
  21. python中关于数列删减问题
  22. Python frequently asked questions - PIP install specifies the requirements.txt exported by the poetry, and an error is reported: in -- require hashes mode, all req
  23. Sur le problème de la réduction des séries en python
  24. 关于Python安装的问题(不知道自己下的什么)
  25. What do Python's u, R, B, f mean?
  26. Actual combat! Why is Changjin lake so popular? I use Python to analyze cat eye reviews.
  27. Python用xpath定位正确返回的是返回空值
  28. Python error handling
  29. django_celery_beat的clocked定时任务不触发
  30. Python renvoie une valeur nulle si elle est correctement retournée en utilisant XPath
  31. 关于#python#的问题:sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError)
  32. python + selenium 能定位出来算你厉害
  33. Python + sélénium peut vous localiser.
  34. Python code reading (Chapter 13): check whether the elements in the list are the same
  35. Python online retail data association rule mining Apriori algorithm data visualization
  36. python习题,要求用for循环和if语句。
  37. 用Python获得女友聊天记录,一招解决疑神疑鬼
  38. Obtenez le chat de votre petite amie en python pour résoudre les problèmes
  39. Les exercices Python nécessitent des boucles pour et des énoncés if.
  40. Python code reading (Chapter 13): check whether the elements in the list are the same
  41. 练手练到阅文集团作家中心了,python crawlspider 二维抓取学习
  42. python阶乘和数题,要求用for循环,if语句
  43. Python 求最大幂次,用while循环
  44. L'entraîneur s'est entraîné au centre d'écriture du Groupe Yuewen, Python crawlspider 2D grapping Learning
  45. 这六个Python程序的代码要怎么写
  46. Python calcule la puissance maximale et utilise la Boucle while
  47. python入门:请问怎么避免用户输入相同内容呢
  48. python用迭代法求平方根要求用while循环
  49. Comment écrire le Code de ces six programmes Python
  50. python用迭代法求平方根要求用while循環
  51. Python a besoin d'une Boucle while pour trouver la racine carrée par itération
  52. Démarrer avec Python: Comment puis - je empêcher les utilisateurs d'entrer le même contenu?
  53. 这么多的内置函数能记住吗?对python的68个内置函数分类总结!
  54. 這麼多的內置函數能記住嗎?對python的68個內置函數分類總結!
  55. Est - ce que tant de fonctions intégrées peuvent être mémorisées? Résumé de la classification des 68 fonctions intégrées de Python!
  56. 这么多的内置函数能记住吗?对python的68个内置函数分类总结!
  57. Est - ce que tant de fonctions intégrées peuvent être mémorisées? Résumé de la classification des 68 fonctions intégrées de Python!
  58. python 假设lst=[3,4,12,[6,9,12,24],[12,18,34]]统计list中包含元素12的个数
  59. python 假設lst=[3,4,12,[6,9,12,24],[12,18,34]]統計list中包含元素12的個數
  60. Python suppose que LST = [3,4,12, [6,9,12,24], [12,18,34]] compte le nombre d'éléments 12 dans la Liste