第 0012 题: 敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。
from cmd import Cmd
import sys
import re
class CmdTest(Cmd):
def __init__(self,filename): # 初始基础类方法
super(CmdTest,self).__init__(filename)
self.intro = '敏感词检测,输入:[d 词汇];输入:[exit]退出' #程序提示信息
self.words =self.getData(filename)
def getData(self,filename):
with open(filename,'r') as f:
words = f.read().split()
return words
def do_d(self, line):
for i in self.words:
if re.search(i, line):
line = line.replace(i, '*' * len(i))
print(line)
def do_exit(self, line): # 以do_*开头为命令
print("Exit:", line)
sys.exit()
if __name__ == "__main__":
cmd = CmdTest('filtered_words.txt')
cmd.cmdloop()