'RELATED_OMC\tVARCHAR2 (60)\tRELATED_OMC\n',
'BSC_NAME\tNUMBER\tBSC_NAME\n',
'CELL_NAME\tVARCHAR2(100)\tCELL_NAME\n',
'LAC\tNUMBER\tLAC\n',
'CI\tVARCHAR2(50)\tCI\n',
'ADJ_CELL_NAME\tVARCHAR2(100)\tADJ_CELL_NAME\n',
'NLAC\tVARCHAR2(50)\tNLAC\n',
'NCI\tVARCHAR2(50)\tNCI\n',
'UPLOAD_DATE\tDATE\tUPLOAD_DATE\n']
newArr = []
for v in arr:
newStr = v.replace('VARCHAR', 'string')
newStr = newStr.replace('NUMBER', 'double')
newStr = newStr.replace('DATE', 'timestamp')
newArr.append(newStr)
print(newArr)
'''
输出结果:
['DIST_C_NAME\tstring2(10)\tCITY_NAME\n',
'RELATED_OMC\tstring2 (60)\tRELATED_OMC\n',
'BSC_NAME\tdouble\tBSC_NAME\n',
'CELL_NAME\tstring2(100)\tCELL_NAME\n',
'LAC\tdouble\tLAC\n',
'CI\tstring2(50)\tCI\n',
'ADJ_CELL_NAME\tstring2(100)\tADJ_CELL_NAME\n',
'NLAC\tstring2(50)\tNLAC\n',
'NCI\tstring2(50)\tNCI\n',
'UPLOAD_timestamp\ttimestamp\tUPLOAD_timestamp\n']
'''
#读取替换列表replaceList = []
with open('b.txt', 'r') as fpb:
for line in fpb:
replaceList += [line.split()]
#替换
with open('a.txt', 'r') as fpa:
for line in fpa:
for i in range(1, 2000):
line = line.replace(replaceList[i][0], replaceList[i][1])
print(line[:-1])
这边只是直接显示,需要写到文件里吗
先给出结论:
要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高;
如果要替换的字符数量较多,则推荐在 for 循环中调用 replace() 进行替换。
可行的方法:
1. 链式replace()
?
1 string.replace().replace()1.x 在for循环中调用replace() 「在要替换的字符较多时」
2. 使用string.maketrans
3. 先 re.compile 然后 re.sub