[解決済み] Pythonでファイルから文字を読み込む
質問
テキストファイルの中に、"I don't like this"という文字列があります。
しかし、これを文字列に読み込むと、"I donxe2x80**t like this"になります。となってしまうのです。私は
f1 = open (file1, "r")
text = f1.read()
コマンドで読み込みを行います。
さて、文字列を読み込むときに、"I donxe2x80x98t like this like this"ではなく、"I don't like this"となるような読み方は可能でしょうか。
2番目の編集:この問題を解決するためにマッピングを使う人を見たことがありますが、本当に、この種のANSIからunicode(およびその逆)への変換を行う組み込みの変換はないのでしょうか?
どのように解決するのですか?
参考 http://docs.python.org/howto/unicode
したがって、ファイルから Unicode を読み取ることは簡単です。
import codecs
with codecs.open('unicode.rst', encoding='utf-8') as f:
for line in f:
print repr(line)
また、ファイルを更新モードで開き、読み込みと書き込みの両方を可能にすることもできます。
with codecs.open('test', encoding='utf-8', mode='w+') as f:
f.write(u'\u4500 blah blah blah\n')
f.seek(0)
print repr(f.readline()[:1])
EDIT : あなたの意図するゴールは、Pythonでファイルを文字列に正しく読み込むことができるだけだと仮定しています。もしあなたが Unicode から ASCII 文字列に変換しようとしているなら、Unicode 文字が必ずしも ASCII に存在するとは限らないので、それを行う直接的な方法はありません。
ASCII文字列に変換しようとしている場合、次のいずれかを試してみてください。
-
この特定の例のようないくつかの特殊なケースを処理したいだけであれば、特定の unicode 文字を同等の ASCII 文字に置き換えます。
-
を使用します。
unicodedata
モジュールのnormalize()
とstring.encode()
メソッドを使用して、次に近い ASCII 等価物にできる限り変換します (Ref. https://web.archive.org/web/20090228203858/http://techxplorer.com/2006/07/18/converting-unicode-to-ascii-using-python ):>>> teststr u'I don\xe2\x80\x98t like this' >>> unicodedata.normalize('NFKD', teststr).encode('ascii', 'ignore') 'I donat like this'
関連
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでUnicode(UTF-8)のファイル読み書きをする。
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Python Empty Generator 関数
-
[解決済み] Pythonでファイルの読み込みと上書きをする