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

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 ,如果可以具体如何编写? 谢谢!!!!

可以把要替换的内容写成一个替换对照的列表,然后循环列表多次执行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()

 

可直接使用字符串的replace方法,比较简便。

s='hello12345yuhg'
d={'hello':'hi','12345':'21356','yuhg':'ksus'} #构建一个用于替换的字典
for x,y in d.items(): #遍历
    s=s.replace(x,y) #替换
print(s)

文件类似于表格形式吗, 

可以考虑用pandas

import pandas as pd

data = pd.read_csv('文件路径.txt')  # 根据情况看是否需要设置enconding 或者sep参数

data['需要替换的变量列'].replace(['12345','21356'],['yuhg','ksus'],inplace=True)

 

您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632