list文件里有两列,一列原字符串,一列替换字符串;文件里包含原字符串的内容,根据list替换掉,脚本如下:
python substitute.py list.txt 1.txt 2.txt
list.txt:
a1 b1
a2 b2
a3 b3
1.txt:
sadjsj jsdjs kjk a2
sdkjen fkg a3; skjdo a2
kdjk koefjo llj
akdjsh a1
2.txt 结果输出:
sadjsj jsdjs kjk b2
sdkjen fkg b3; skjdo b2
kdjk koefjo llj
akdjsh b1
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
author: xushifen
script: 批量从文件1的list里读取原字符和要替换字符,并输入到pattern里面,逐一替换文件2里的内容
date:2021.9.7
"""
import sys
import re
def usage():
print('Usage: python substitute.py [list_file] [in_file] [out_file]')
def read_dt(index):
dt = {}
for line in index:
#这里key为原字符,value为替换字符
key = line.strip().split("\t")[0]
dt[key] = line.strip().split("\t")[1]
return dt
def main():
index = open(sys.argv[1], 'r')
inf = open(sys.argv[2], 'r')
ouf = open(sys.argv[3], 'w')
dt = read_dt(index)
lines = inf.readlines()
for line in lines:
line = line.strip()
for old, new in list(dt.items()):
if old in line:
line = line.replace(old, new)
else:
continue
ouf.write(line + '\n')
continue
index.close()
inf.close()
ouf.close()
try:
main()
except IndexError:
usage()