shang0826 发表于 2021-11-29 09:58:43

新手求解

完成一个敏感词过滤程序,分别输入待过滤的文件名与保存过
滤结果的文件名,将待过滤文件中单独的敏感词
                                                 ......
转换为等长度
的“*”字符。设待过滤文件和敏感词均为纯英文,需要过滤的
敏感词存放在文件“sensitive.txt”中,每行一个敏感词。

jackz007 发表于 2021-11-29 10:11:09

       你想说什么,你的困难是什么?

君无泪 发表于 2021-11-29 14:11:17

import re


def filter(file1, file2, file3):
        '''
        替换敏感词
        file1 待替换文件。
        file2 敏感词文件。
        file3 保存替换结果的文件。
        '''
        with open(file1, 'r') as f1:
                text = f1.read()# 读取需要过滤的文件。
       
        f2 = open(file2, 'r')# 读取敏感词并进行替换。
        while True:
                line = f2.readline().strip()
                if line:
                        text = re.sub(line, '*'*len(line), text, re.S)
                else:
                        break
        f2.close()
       
        with open(file3, 'w') as f3:
                f3.write(text.strip())# 把替换好的文本写入文件。
               
               
if __name__ == '__main__':
       
        filter('f1.txt', 'f2.txt', 'f3.txt')

君无泪 发表于 2021-11-29 15:19:23

# 或者这样好看一点点。
import re


def filter(file1, file2, file3):
        '''
        替换敏感词
        file1 待替换文件。
        file2 敏感词文件。
        file3 保存替换结果的文件。
        '''
        # 读取需要过滤的文件。
        with open(file1) as f1:
                text = f1.read()
       
        # 读取敏感词文件并进行替换。
        with open(file2) as f2:
                for i in f2:
                        text = re.sub(i.strip(), '*'*len(i.strip()), text, re.S)
       
        # 把替换好的文本写入文件。
        with open(file3, 'w') as f3:
                f3.write(text.strip())
               
               
if __name__ == '__main__':
       
        filter('f1.txt', 'f2.txt', 'f3.txt')
页: [1]
查看完整版本: 新手求解