質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3631閲覧

Pythonで、ファイルから文字列を読み込みたい。

kkk-8615

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2020/07/08 02:06

前提・実現したいこと

Pythonで、「ファイルから文字列を読み込みたい」です。
(Python歴は、1weekで入門書で勉強中です)

発生している問題・エラーメッセージ

line 2, in <module>
r = f.read()
File "C:\Users\123456\AppData\Local\Programs\Python\Python38-32\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 0: invalid start byte

該当のソースコード

f = open("test2.txt", 'r',encoding="utf-8")
r = f.read()
f.close()
print(r)

試したこと

テキストファイルのファイル名を変えてみた。
「text2.txt」→「text2」※拡張子を外した

補足情報(FW/ツールのバージョンなど)

Python3.8.3を使っています。

とある入門書の演習問題です。
テキストファイルに文字列を書き込んでおき、それをシェルウインドウに出力する練習です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

次のうちいずれかを試して見てください。

python

1f = open("test2.txt", 'r') 2r = f.read() 3f.close() 4print(r)

python

1f = open("test2.txt", 'r', encoding='shift_jis') 2r = f.read() 3f.close() 4print(r)

上記2つで解決しない場合、以下のコードの実行結果を教えてください。

import locale locale.getpreferredencoding(False)

文字コード

「文字コード」で引っかかっています。文字コードというのは、平たくいうと 0, 1 のデータの並び列をどうやって解釈するかを定めたルールです。

# 1. 画面の出力 こんにちは

|
V

python

1# 2. 文字符号化集合 2# Unicode 3# Python の内部表現, Python が実行する際は、こっちの形式を使っています。 4print(*(ord(c) for c in 'こんにちは'))
>>> print(*(ord(c) for c in 'こんにちは')) 12371 12435 12395 12385 12399 >>>

|
V

# 3. 文字コード # ファイルに保存する際は、こちらの形式になります。 # 3.1. Shift-JIS(Windows) 10000010 10110001 10000010 11110001 10000010 11001001 10000010 10111111 10000010 11001101 # 3.2. UTF-8(Linux, macOS) 11100011 10000001 10010011 11100011 10000010 10010011 11100011 10000001 10101011 11100011 10000001 10100001 11100011 10000001 10101111

投稿2020/07/08 02:15

編集2020/07/08 02:42
nico25

総合スコア830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kkk-8615

2020/07/08 02:30

nico25 様 【御礼】 迅速なご教示ありがとうございました。 【状況】 1つ目のトライで、問題なく動作しました。 入門書によると「パソコンやエディタによってファイルの保存形式が異なるため、この記述を入れないとファイルによっては読み込みに失敗し、エラーになることがあります」と記載があったので、この部分を外して試しておらず、反省しております。
nico25

2020/07/08 02:31

そういっていただけると助かります :)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問