Python从txt文件中读取黑词并简单匹配字符串

下班前同事收到一封邮件说客户在系统中发送短信时候提示有黑词,但因为sp并没有指出具体是冒犯了哪个黑词。找负责短信接口的同事要了一个黑词列表,里边有上千行的黑词,因为着急下班回家,想到处理这些小问题还是得Python这些小脚本出马。

先将黑词列表文件存成utf-8格式「个人爱好,非必须步骤

在编辑器中写入如下代码:

# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

f = open('test.txt', 'rb')

for i in f:

if i in u"短信内容":

print i.decode('utf-8')

但是事实和想象不同的是,内容基本没有匹配出来……

然后各种检查:

  1. for循环中输出判断某一个黑词是否=='黑词',结果居然不等
  2. 以为是各种编码问题,开始保存成gbk,来回转换编码……无果
  3. 抽风输出了for循环中每行字符的长度,发现居然会比直接len('黑词')的长度要长……
  4. 忽然想到读取文件时候每一行貌似Python会保留换行符……

最后解决其实很简单

# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

f = open('test.txt', 'rb')

for i in f:

if i.strip() in u"短信内容":

print i.decode('utf-8')

添加新评论 »