-2

重複の可能性:
Pythonでファイルから文字を読み取る

実際の文字を除くすべての特殊文字からファイルから入力文字列を削除したい(キリル文字も削除しないでください)。私が見つけた解決策は、文字列をユニコードとして宣言し、パターンをre.UNICODEフラグ付きで宣言して、さまざまな言語の実際の文字が検出されるようにします。

# -*- coding: utf-8 -*-
import re
pattern = re.compile("[^\w\d]",re.UNICODE)
n_uni = 'ähm whatßs äüöp ×äØü'
uni = u'ähm whatßs äüöp ×äØü'
words = pattern.split(n_uni) #doesn't work
u_words = pattern.split(uni) #works

したがって、文字列をソースに直接書き込み、手動でUnicodeとして定義すると、目的の出力が得られますが、非Unicode文字列ではごみが発生します。

"ähm whatßs äüöp äØü" -> unicode
"hm what s ü p ü" -> non-unicode even with some invalid characters

私の質問は、ファイルからの入力をUnicodeとして定義するにはどうすればよいですか?

4

1 に答える 1

2

私の質問は、ファイルからの入力をユニコードとして定義するにはどうすればよいですか?

ドキュメントから直接。

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')
for line in f:
    print repr(line)
于 2012-07-01T12:09:27.443 に答える