python如何实现多次替换,有正则!

Python017

python如何实现多次替换,有正则!,第1张

arr = ['DIST_C_NAME\tVARCHAR2(10)\tCITY_NAME\n',

    '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])

这边只是直接显示,需要写到文件里吗

python中快速进行多个字符替换的方法小结

先给出结论:

要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高;

如果要替换的字符数量较多,则推荐在 for 循环中调用 replace() 进行替换。

可行的方法:

1. 链式replace()

?

1   string.replace().replace()   

1.x 在for循环中调用replace() 「在要替换的字符较多时」

2. 使用string.maketrans

3. 先 re.compile 然后 re.sub