对⼤量⽂本进⾏指定内容的批量替换
⾸先,我们⾯对的需求是将30个SQL脚本中的where条件进⾏修改,由原来的 "CRTABLE<>‘ZT’“替换为"CRTABLE<>‘ZT’ and CRTABLE<>‘SIC’”。
这⾃然是可以依次打开⽂本,并⼿动进⾏替换的,但由于⽂本数量过⼤,所以我们在此选择使⽤python进⾏批量替换。
第⼀步:
浪胃仙path1="D:\\需要替换的脚本"
path2="D:\\替换完成的脚本"
第⼆步:
path1⾥的所有⽂本都是需要进⾏替换的,所以我们需要遍历整个⽂件夹,并且获取路径以及对应的脚本名称:
for folderName, subfolders, filenames in os.walk(path1):
任达华是谁ic(filenames)
ic(folderName)
for file in filenames:
source=os.path.join(folderName,file)
target=os.path.join(path2,file)
代码中的ic,是icecream的包,如果没有安装过,可以理解为print。
林妙可假唱事件这样运⾏之后,source实际上就是所有你需要替换的⽂件(包含⽂件路径以及⽂件名),target就是⽬标路径,加上相同的⽂件名。
在这⾥,我们是将替换后的⽂件换了⼀个⽂件夹,所以⽂件名相同不会有影响。
第三步:在获取了所有源⽂件以及⽬标⽂件之后,我们就要开始准备对源⽂件进⾏替换。
with open(source,'r+', encoding='cp936')as f1:
with open(target,'w+',encoding='cp936')as f2:
str1 = r"CRTABLE<>'ZT'"
str2 = r"CRTABLE<>'ZT' and CRTABLE<>'SIC'"
for ss adlines():
tt = re.sub(str1, str2, ss)
f2.write(tt)
这⼀步,就是将source中所有需要替换的内容逐⾏检索,并且将其替换到⽬标⽂件中。
之后打开对应的⽬标⽂件夹,就会看到已经替换过的所有脚本了。
完整代码如下:
import os
from icecream import ic
宾的拼音import re
path1="D:\\需要替换的脚本"
path2="D:\\替换完成的脚本"
for folderName, subfolders, filenames in os.walk(path1): ic(filenames)
ic(folderName)
for file in filenames:
source=os.path.join(folderName,file)
target=os.path.join(path2,file)
ic(source)
ic(target)
唐山大地震演员表with open(source,'r+', encoding='cp936')as f1:
with open(target,'w+',encoding='cp936')as f2:
梁咏琪个人资料str1 = r"CRTABLE<>'ZT'"
str2 = r"CRTABLE<>'ZT' and CRTABLE<>'SIC'"
for ss adlines():
tt = re.sub(str1, str2, ss)
f2.write(tt)
发布评论