我有测试文件(测试.txt)具体如下:
`RANGE(vddout,sup)
`RANGE(vddin,sup_p)
我想修改这个文件如下:
`RANGE(vddout,sup,tol_sup)
`RANGE(vddin,sup_p,tol_sup_p)
下面是我尝试过的代码,但它无法找到并使用替换模式检索. 你能指出代码中的漏洞在哪里吗?你知道吗
with open("test.txt", 'r+') as file :
for line in file:
print("line={}".format(line))
findPattern=re.search(r'(`RANGE\(\w+,(\w+))\)',line)
if findPattern:
print("findPattern={}".format(findPattern))
line=re.sub(r'(`RANGE\(\w+,(\w+))\)',r'\1,tol_\2',line)
如注释中所述,您没有编写该文件。你知道吗
此外,当您可以将整个文件作为字符串读取以执行操作时,您正在逐个读取每一行。这既低效(因为您需要多次执行
re.sub
),又更复杂的*代码(因为您需要创建一个新字符串来写入文件)。你知道吗最后,您将执行
re.match
和re.sub
。这是不必要的,因为如果没有匹配项,re.sub
将什么也不做;您不需要先检查。你知道吗*注:更复杂但不难
这应该管用。(您不必先搜索然后替换。您可以直接尝试替换。它只在第一个匹配时替换)
相关问题 更多 >
编程相关推荐