2017-11-23 16 views
0

(파이썬) :스트립 특수 문자 만 계속 새로운 라인 나는 다음과 같은 텍스트 파일이

하지

수 없습니다

하지 않습니다

를 수행

아니요

내 목표는 각 단어의 줄 바꿈을 유지하면서 텍스트 파일에서 모든 특수 문자를 제거하는 것입니다.

캔트

야해

내가 현재 다음과 같은 코드를 사용하고

하지 말라 : 그러나

import re 

class TextCleaner: 
    uncleanText = open("words.txt").read() 
    cleanText = re.sub('[^A-Za-z0-9]+', '', uncleanText) 
    open('words.txt', 'w').write(cleanText) 

을, 이것은 출력 출력과 같아야합니다 다음 : DontCantWontSh 도큐

regex를 사용하여 새로운 라인을 유지하면서 주 목표를 달성 할 수 있습니까?

+2

줄 단위로 읽지 않는 이유는 무엇입니까? 또는 단지're.sub ('[^ A-Za-z0-9 \ n] +', '', uncleanText)' –

+0

당신은'\ n'을 버리고 있습니다. 그것은 개행 문자입니다. –

답변

1

새 줄을 보존하기 위해 \n을 추가하거나 공백을 유지하기 위해 \s을 추가 할 수 있습니다. \s의 경우이 코드는

import re 

class TextCleaner: 
    uncleanText = open("words.txt").read() 
    cleanText = re.sub('[^A-Za-z0-9\s]+', '', uncleanText) 
    open('words.txt', 'w').write(cleanText)