2017-11-23 3 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 ouldnt

regexを使って新しい行を保存しながら私の主目的を達成することはできますか?

+2

なぜ行単位で読み込まないのですか? 're ^( '[^ 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) 
関連する問題