理论上的生命---史前巨肥猫 2024-05-25 14:28 采纳率: 95.7%
浏览 1
已结题

为什么无法用正则表达式替换里面的cat?

img


#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()

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-25 14:28
    关注

    引自免费微信小程序:皆我百晓生

    在您的代码中,您试图使用 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')覆盖原内容,将替换后的内容写回文件。

    注意,这里我们不再遍历文件行,因为我们想要替换的是整个文件中的所有匹配项,而不是每一行。如果确实需要按行处理,可以稍作调整,但通常不推荐这样做,因为它可能导致性能问题,特别是对于大文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 用verilog实现tanh函数和softplus函数
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题