敏感词替换

流程以及思路确定

1.用户输入一串文字 ,保存到user_input中
2.检查文字是否有敏感词,以及敏感词的具体位置,直接使用relpace方式替换掉敏感词
3.一句话中可能含有多个敏感字,这个时候就要重复2的步骤。
4.使用 * *len(str) 替换掉敏感词对应的个数。

1
2
3
4
5
6
7
8
9
# encoding:utf-8   
user_input = input('请输入:')
for filter_word in open('filter.txt'):
filter = filter_word.rstrip()
if filter in user_input:
filter_len = len(filter)
user_input = user_input.replace(filter,'*'*filter_len)
else:
print(user_input)

总结:

  1. python中文件的读取
    函数open(filename,mode)用于读取文件,返回一个file object。 所以现在我们的filter.txt是一个文件对象
    参数filename:是一个字符串,用来代表文件名.
    参数mode:决定了打开文件的方式,比如只读(r), 写入(w), 追加等。
  2. rstrip()方法
    Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格).
    基本格式:
    1
    str.rstrip([chars])
  • chars – 指定删除的字符(默认为空格)
  • 返回删除 string 字符串末尾的指定字符后生成的新字符串
  1. replace()方法
    Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
    基本格式:
    1
    STR.REPLACE(OLD, NEW[, MAX])
  • old – 将被替换的子字符串。
  • new – 新字符串,用于替换old子字符串。
  • max – 可选字符串, 替换不超过 max 次
  • 返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
  1. for …else…
    只有当循环里没有遇到 break 时,else 块才会执行。
    当你想在房间里找某样东西时,只要在任意位置找到了,就停止继续搜查工作。但如果把整个房间都翻遍了,还没找到我们想要的东西,需要告诉人家说:这儿没有你要找的东西。
    遇到这样的情况用 for … else ,除此之外,最好不要用它