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

如何使用Python 3搜索和替换文件中的文本

这是我的密码:

导入操作系统
导入系统
导入文件输入
打印(“要搜索的文本:”)
textToSearch=输入(“>”)
打印(“替换为:”)的文本)
textToReplace=输入(“>”)
打印(“要在其上执行搜索替换的文件:”)
fileToSearch=输入(“>”)
#fileToSearch=’D:\dummy1.txt’
tempFile=open(fileToSearch’r+’)
对于fileinput.input(fileToSearch)中的行:
如果text搜索第行:
打印(’找到匹配项’)
其他:
打印(’未找到匹配项!!’)
tempFile.write(line.replace(textToSearch,textToReplace))
tempFile.close()文件
输入(’\n\n按Enter键退出…’)

输入文件:

hi这是hi这是hi
这是一个虚拟文本文件。
这就是搜索和替换的工作原理

当我在上面的输入文件中搜索“ram”并将其替换为“abcd”时,它就像一个符咒。但当我这样做时,反之亦然,即用“ram”替换“abcd”,一些垃圾字符会留在末尾

将“abcd”替换为“ram”

hi这是ram hi这是ram
这是一个虚拟文本文件。
这就是搜索和替换的工作原理

正如michaelb958所指出的,您不能用不同长度的数据替换在位,因为这将使其余部分不合适。我不同意其他的海报建议你从一个文件读到另一个文件。相反,我会将文件读入内存,修复数据,然后在单独的步骤中将其写入同一个文件

#读入文件
打开('file.txt','r')作为文件:
filedata=file.read()
#替换目标字符串
filedata=filedata.replace('ram','abcd')
#再把文件写出来
打开('file.txt','w')作为文件:
file.write(文件数据)

除非您要处理的文件太大,无法一次性加载到内存中,或者您担心在向文件写入数据的第二步过程中,如果进程中断,可能会导致数据丢失

发表评论