Python read/write file Chinese mess Error TypeError: write() argument must be str, not bytes+.
2022-02-18 22:56:14
今日はPythonを使って、以下のようなコードで中国語のちんぷんかんぷんな文章をファイルに書き込んでみました。
fo = open("temp.txt", "w+")
str = 'Chinese'
fo.write(str)
fo.close()
その後、書き込んだ文字列のエンコード形式を UTF-8 と指定すると、TypeError: write() の引数は bytes ではなく str でなければならない、というエラーが発生します。
fo = open("temp.txt", "w+")
str = 'Chinese'
str = str.encode('utf-8')
fo.write(str)
fo.close()
Webで検索したところ、ファイルの開き方に問題があることがわかったので、以前のopen文をバイナリで開くように変更したところ、うまくいきました
fo = open("temp.txt", "wb+")
全コードは以下の通りです。
fo = open("temp.txt", "wb+")
str = 'Chinese'
str = str.encode('utf-8')
fo.write(str)
fo.close()
と中国語が文字化けすることはありません
この問題の原因は、pickleの保存方法がデフォルトでバイナリであることです
関連
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】PEP8のE128:ビジュアルインデントで継続行がアンダーインデントになるのは何?
-
[解決済み】pythonのエラー。TypeError: 整数が必要です。
-
pythonのエラーです。IndexError: スカラー変数へのインデックスが無効です。
-
[解決済み] userprofileにnullでないフィールド'new_field'をデフォルトでなく追加しようとしています。
-
[解決済み] Pythonを使ったディレクトリ内のファイル数の数え方
-
[解決済み] Python MySQLdb の問題 (TypeError: %d format: 数値が必要で、str ではありません)
-
[解決済み] グループ化されたPandasデータフレームをループオーバーする方法は?
-
[解決済み] 不規則なリストの中で最も長いリストの長さを求める
-
redis' という名前のモジュールがない
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】入力配列を形状(3,1)から形状(3,)にブロードキャストできない。)
-
[解決済み] Pythonでファイルを開くときの'r+'と'a+'の違いは何ですか?重複] [重複] [重複
-
[解決済み] Python 3でexecfileの代替?[重複]です。
-
[解決済み] Pythonによる一律コスト探索
-
[解決済み] Flaskアプリで "could not locate flask application "というエラーが発生する。Flask Migrateで「......FLASK_APP環境変数」のエラーが発生する。
-
[解決済み] Django の datetime の問題 (default=datetime.now())
-
[解決済み] シーボーン・ヒートマップ・キーワード
-
[解決済み] PhantomJS with Seleniumのエラーです。メッセージ 'phantomjs' 実行ファイルが PATH にある必要があります。
-
[解決済み] zlib という名前のモジュールはありません。