Python ファイル 読み込み|with open(file, ‘r’, encoding=’utf-8′) as f:

※「mode=’r’」を省略するとデフォルトで読み込みの動作になります。

read() 全文を文字列として取得

with open(file, 'r', encoding='utf-8') as f:
    f_text = f.read()
    print(f_text)

いろはにほへと
ちりぬるを
わかよたれそ

readlines() 全行をリストとして取得

with open(file, 'r', encoding='utf-8') as f:
    f_list = f.readlines()
    print(f_list)

[‘いろはにほへと\n’, ‘ちりぬるを\n’, ‘わかよたれそ’]

1行ずつ処理

with open(file, 'r', encoding='utf-8') as f:
    for row in f:
        print(row)

いろはにほへと

ちりぬるを

わかよたれそ

ファイル 読み込み エラー

文字化けするときは encoding=”utf-8″

糸偏いとへんだらけの漢字に文字化けしている場合は、エンコードを指定してみます。

with open(file, 'r', encoding='utf-8') as f:

OSError: [Errno 22] Invalid argument:

このエラーの多くはファイルパスが原因です。パスの最初に’r’を付けてraw文字にしてみます。

file = r'C:\Users\Downloads\test.txt'
with open(file, 'r', encoding='utf-8') as f:

UnicodeDecodeError:

このエラーの多くはエンコードの違いが原因です。ファイル内のテキストが日本語の場合は別のエンコード(encoding=”shift-jis”など)で試してみます。

with open(file, 'r', encoding='shift-jis') as f:

エンコードは間違っていないのにエラーが解消しない場合はBOMのせいかもしれません。errors=”ignore”でBOMエラーを無視してみます。
※BOM(バイトオーダーマーク)とは、Unicode形式の種類の違いを示すためにファイルの先頭に付与されたデータのこと。

with open(file, 'r', encoding='utf-8', errors='ignore') as f: