[解決済み】Unicodeテキストをテキストファイルに書き込む?
2022-04-03 16:51:40
質問
Googleドキュメントからデータを取り出し、加工してファイルに書き込んでいます(最終的にはWordpressのページに貼り付ける予定です)。
非ASCIIの記号がいくつかあります。これをHTMLソースで使用できる記号に安全に変換するにはどうしたらよいでしょうか?
現在は、途中ですべてをUnicodeに変換して、Pythonの文字列で結合して、やっています。
import codecs
f = codecs.open('out.txt', mode="w", encoding="iso-8859-1")
f.write(all_html.encode("iso-8859-1", "replace"))
最終行でエンコードエラーが発生しています。
UnicodeDecodeError: 'ascii' コーデックは、バイト 0xa0 in position 12286: 序数が範囲(128)内ではない
部分的に解決。
このPythonはエラーにならずに実行されます。
row = [unicode(x.strip()) if x is not None else u'' for x in row]
all_html = row[0] + "<br/>" + row[1]
f = open('out.txt', 'w')
f.write(all_html.encode("utf-8"))
でもって、実際のテキストファイルを開くと、こんな記号がたくさん出てくる。
Qur’an
もしかして、テキストファイル以外のものに書き込む必要があるのかな?
どのように解決するのですか?
最初に手に入れたものをユニコードオブジェクトにデコードし、途中で必要に応じてエンコードすることで、できるだけユニコードオブジェクトのみを扱うようにします。
文字列が実際にユニコード・オブジェクトである場合、それをファイルに書き込む前にユニコード・エンコードされた文字列オブジェクトに変換する必要があります。
foo = u'Δ, Й, ק, م, ๗, あ, 叶, 葉, and 말.'
f = open('test', 'w')
f.write(foo.encode('utf8'))
f.close()
そのファイルをもう一度読むと、ユニコード・エンコードされた文字列が得られ、それをデコードしてユニコード・オブジェクトにすることができます。
f = file('test', 'r')
print f.read().decode('utf8')
関連
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] Pythonのunicode()とencode()関数の使用法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] 特定のUnicode文字を含むコメントでのJavaコードの実行が許可されているのはなぜですか?
最新
-
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関数の高度な応用を解説
-
Python jiabaライブラリの使用方法について説明
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] PythonでUnicode文字列を文字列に変換する(余分な記号を含む)