weixin_44907706 2021-03-25 18:22 采纳率: 100%
浏览 66
已采纳

小白一枚求大神支招 文件中的字符 如何连续替换多个

import re
f=open('/home/wuzz/11.txt','r')
alllines=f.readlines()
f.close()
f=open('/home/wuzz/11.txt','w+')
for eachline in alllines:
    a=re.sub('hello','hi',eachline)
    f.writelines(a)
f.close()

小白一枚求大神支招!!

这个替换当前文件中的字符,可以连续替换其他字符吗?比如我还要 12345 替换成 21356 yuhg 替换 ksus ,如果可以具体如何编写? 谢谢!!!!

  • 写回答

4条回答 默认 最新

  • 关注

    可以把要替换的内容写成一个替换对照的列表,然后循环列表多次执行re.sub()进行替换

    import re
    f=open('/home/wuzz/11.txt','r')
    alllines=f.readlines()
    f.close()
    f=open('/home/wuzz/11.txt','w+')
    plist = [
        ('hello','hi'),
        ('12345','21356'),
        ('yuhg','ksus'),
    ]
    for eachline in alllines:
        for reg,text in plist:
            eachline = re.sub(reg,text,eachline)
        f.writelines(eachline)
    f.close()
    

     

    或者不用循环,直接多写几个re.sub()也可以

    import re
    f=open('/home/wuzz/11.txt','r')
    alllines=f.readlines()
    f.close()
    f=open('/home/wuzz/11.txt','w+')
    
    for eachline in alllines:
        a=re.sub('hello','hi',eachline)
        a=re.sub('12345','21356',a)
        a=re.sub('yuhg','ksus',a)
        f.writelines(a)
    f.close()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 led数码显示控制(标签-流程图)
  • ¥20 为什么在复位后出现错误帧
  • ¥15 结果有了,想问一下这个具体怎么输入
  • ¥15 怎么修改鸿蒙app的UI及功能设计
  • ¥15 帮我利用jupyter 运行一个正确的代码
  • ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
  • ¥15 sqlite加密问题咨询
  • ¥15 appdesigner接收不到udp组播的数据
  • ¥15 verilog 非阻塞赋值下的移位拼接错误
  • ¥100 两个按钮控制一个LED
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部