在文本文件中搜索和替换并保存更改

我正在尝试在文本文件中搜索模式并替换为另一个字符串。
我已在中打开了该文件。
R+
"模式并使用
Re.sub
用于替换文本。
Python输出窗口显示了所需的结果,但当我打开文本文件时没有任何更改。文本文件中不会替换要替换的字符串。
为什么会这样呢?

选择 | 换行 | 行号
  1. # !/usr/bin/python
  2.  
  3. import os,re
  4.  
  5. fName = r'LOCATION OF FILE'
  6. directory = os.path.dirname(fName)
  7.  
  8. os.chdir(directory)
  9.  
  10. fileName = os.path.basename(fName)
  11. print(fileName)
  12. o_File = open(fileName ,"r+")
  13.  
  14. with o_File as readFile:    
  15.     for searchpattern in readFile:
  16.  
  17.         found_Pattern = re.search("\s*\'[\d]+\==*[\d]*\.*[\d]*\==*[\d]*\.*[\d]*\'*",searchpattern,re.IGNORECASE)
  18.         if found_Pattern:
  19.             found_Pattern_Pat = found_Pattern.group()
  20.             print(value)
  21.             fValue = re.sub(r'==(.+)==','==100==',found_Pattern_Pat)
  22.             print(fValue)
  23.  
  24. o_File.close()
# 回答1


假设您的数据文件不是很大,无法存储在内存中,请编译修改和未修改的文本行的列表(搜索模式将是一行文本)。关门后
O_文件
,在写入模式下再次打开该文件或另一个合适的文件,并将编译列表的内容写入其中。关闭文件对象以将内容刷新到磁盘。
# 回答2


@BVDET感谢您的及时回复。
你能告诉我为什么我必须这么做吗?在教程中,有人说当你在"r+"模式下打开一个文件时,该文件在读和写模式下都能被访问。
但在我的情况下,为什么它没有发生?
请你给我澄清一下好吗?
谢谢!
# 回答3


好的,"r+"而不是"r"是用于读写的,但您仍然需要将更新的文本写出到文件中。它可能在逐行的基础上工作--我不确定。让我们知道结果如何。

标签: python

添加新评论