#import re
#with open(r"fish.txt",'r+') as f:
for ww in f:
#a=re.sub('cat','fish',ww)
#ww.write(str(a))
# print(ww)
#f.close()
#a=re.sub('cat','fish',ww)
#ww.write(str(a))
# print(ww)
#f.close()
引自免费微信小程序:皆我百晓生
在您的代码中,您试图使用 re.sub
函数将文本中的 "cat" 替换为 "fish",然后尝试将结果写回文件。然而,这里有一个关键错误:您不应该对字符串调用 write()
方法,因为字符串没有这个方法。您应该将修改后的字符串写回文件对象 f
。
以下是修正后的代码:
import re
with open(r"C:\Users\lenovo\Desktop\新建文件夹\fish.txt", 'r') as f:
content = f.read()
new_content = re.sub('cat', 'fish', content)
with open(r"C:\Users\lenovo\Desktop\新建文件夹\fish.txt", 'w') as f:
f.write(new_content)
这段代码首先读取整个文件到一个变量 content
中,然后使用 re.sub
替换所有的 "cat" 为 "fish"。最后,它会打开同一个文件并以写入模式('w')覆盖原内容,将替换后的内容写回文件。
注意,这里我们不再遍历文件行,因为我们想要替换的是整个文件中的所有匹配项,而不是每一行。如果确实需要按行处理,可以稍作调整,但通常不推荐这样做,因为它可能导致性能问题,特别是对于大文件。