[Python] 폴더 특수문자 제거 및 HTML 태그 제거 함수


# 경로 금지 문자 제거, HTML문자 제거
def filename_remover(string):
        cleaner = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});') #<tag>, &nbsp 등등 제거
        string = re.sub(cleaner, '', string)
        while(string[-1] == '.'):
            string = string[:-1] #끝에 . 제거 ex) test... -> test
        non_directory_letter = ['/', ':', '*', '?', '<', '>', '|'] #경로 금지 문자열 제거
        for str_ in non_directory_letter:
                if str_ in string:
                        string = string.replace(str_, "")
        return string

웹에서 파일을 받아오는데.. 이름 그대로 디렉터리를 생성할때 특수문자, HTML 태그가 포함되어 있는 경우가 있어서 제거하는 함수를 만들어 봤습니다.

 

폴더 생성할때 중간이나 앞에 .(점) 찍는건 되도 맨 뒤에 폴더... 이런식으로 만들면 뒤에 .이 다 사라지고 폴더로

바뀌어 버리더군요. 그래서 그것도 처리했습니다.

 

*, ? 이런문자들은 당연히 처리했는데 ㄱ+한자로 넣으면 폴더 이름에 ?도 넣을 수 있더군요.

물론 표면상으로 똑같이 생겼지 실제론 다른 문자일것이지만요.

*, ?를 똑같이 생긴 특수문자로 치환하면 폴더에서 보이게 할 수도있을거 같긴합니다. 일단 날려버리는쪽으로 진행했습니다.

 

아무생각없이 짜긴했는데.. 더 깔끔하게 만들 수 있을거 같긴한데 귀찮으니 그냥 쓰는걸로..

 

HTML 태그 제거 정규식 참고

stackoverflow.com/questions/9662346/python-code-to-remove-html-tags-from-a-string

COMMENT WRITE