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