>  기사  >  백엔드 개발  >  Python에서 민감한 단어 대체를 구현하는 방법

Python에서 민감한 단어 대체를 구현하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-10-23 14:38:4317973검색

파이썬에서 민감한 단어 대체를 구현하는 방법: 먼저 민감한 단어의 텍스트를 입력한 다음 사용자가 민감한 단어를 입력하고 일치에 성공하면 이를 [*]로 바꾸면 코드는 [new_string = string. 교체(단어,"*"*len(단어))].

Python에서 민감한 단어 대체를 구현하는 방법

Python에서 민감한 단어 대체를 구현하는 방법:

Idea

이 질문은 문자열 대체에 관한 것이지만 주의하지 않으면 프로세스를 단순화하기 쉽습니다. 이 프로세스에는 재귀적 방법을 사용하는 작업이 포함됩니다. Windows에서 python2를 사용하는 경우에도 인코딩 변환이 포함됩니다. 예를 들어 문자열을 한 번 필터링하고 문자열 뒤의 민감한 문자를 제거한 후에는 필터링이 완료되지 않을 수 있다는 점을 고려해야 합니다. 대체하면 나머지 문자열에는 민감한 단어가 새로 형성됩니다. 이 상황은 재귀를 통해 해결해야 합니다. 필터링 및 교체 후의 결과가 필터링 전과 동일할 때까지 교체가 완료된 것으로 간주할 수 있습니다. 그렇지 않으면 논리에 누락이 발생합니다.

스크립트 작성

코드는 다음과 같습니다.

# -*- coding: utf-8 -*-
import os
curr_dir = os.path.dirname(os.path.abspath(__file__))
filtered_words_txt_path = os.path.join(curr_dir,'filtered_words.txt')
import chardet
def filter_replace(string):
    string = string.decode("gbk")
    filtered_words = []
    with open(filtered_words_txt_path) as filtered_words_txt:
        lines = filtered_words_txt.readlines()
        for line in lines:
            filtered_words.append(line.strip().decode("gbk"))
    print replace(filtered_words, string)
def replace(filtered_words,string):
    new_string = string
    for words in filtered_words:
        if words in string:
            new_string = string.replace(words,"*"*len(words))
    if new_string == string:
        return new_string
    else:
        return replace(filtered_words,new_string)
if __name__ == '__main__':
    filter_replace(raw_input("Type:"))

테스트 결과 실행:

Python에서 민감한 단어 대체를 구현하는 방법

관련 무료 학습 권장사항: python tutorial(동영상)

위 내용은 Python에서 민감한 단어 대체를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.