代码改变世界

数据清洗:关于正则式匹配后的替换

2017-02-28 16:51  kopo_C  阅读(50)  评论(0)    收藏  举报

帮同事忙,从doc文档中抽取各个地方的景区名称。这份文档比较奇怪,在分省份之后还在各个省份中添加首字母备注,这样抽取难度就比较大一点。虽然可以把26个字母写入一个列表里进行循环替换,但这太不符合我喜欢的程序风格:简洁。后来我就使用了正则式查询与替换。

之前做过正则式查询的任务,但对于 替换一直懒得去看,在网上搜索了一下,发现了这个博客,上面介绍了一些替换的方案,在这里我使用了re.subn(re, newString, text)这个函数;来进行匹配后的替换。返回两个值,前者是结果,后者是查询到的数目。相关代码如下:

import re

fp = open("new_address", "r")
text = fp.readlines()#.encode("utf-8")
buff = ""
for line in text:
    buff = buff + line
buff = buff.replace("\n", "").replace(" ", "")
result, number = re.subn(r'\[[A-Z]\]\,', "", buff)
fp.close()
with open("clean.txt", "w+") as fp:
    fp.writelines(result)

我把文件存在了caipu2MySQL中,当自己忘记时运行一下程序即可。