Pythonでテキストファイルを読み込む

テキストファイルをPythonで読み込んでみます。

目次

  1. 読み込むテキストファイル
  2. openメソッドでファイルを開く
  3. readメソッド
  4. readlineメソッド
  5. readlinesメソッド
  6. listメソッドで読み込む
  7. forループで読み込む

読み込むテキストファイル

読み込むテキストはこれです。エンコードはUTF-8Nで、改行コードはLFです。

いろはにほへと ちりぬるを
わかよたれそ つねならむ
うゐのおくやま けふこえて
あさきゆめみし ゑひもせす

openメソッドでファイルを開く

ファイルを開くのにはopenメソッドを使います。openしたらcloseが必要ですが、withを使うことで閉じ忘れを防止します。

with open(filename, mode, buffering, encording, errors, newline, closefd, opener) as f:
    #読み取り処理

変数

内容

filename

ファイル名

mode

ファイルを開くモード。rは読み込み。tはテキスト。bはバイナリ。

buffering

バッファの仕方

encoding

テキストモードでのエンコード

errors

テキストモードでデコードしたときの処理方法

newline

テキストモードで読み込んだときの改行コードの変換方法

closefd

opener

f

ファイルオブジェクト

readメソッド

ファイルオブジェクトのreadメソッドでファイルを読み込んでみます。

r = f.read(size)

変数

内容

f

ファイルオブジェクト

size

省略可。読み込む文字数かバイト数。

r

ファイルオブジェクトがテキストモードの場合は文字列、バイナリモードの場合はbytesオブジェクト

試してみました。

with open('test.txt', mode='rt', encoding='utf-8') as f:
    read_text = f.read()

print(read_text)

出力はこうなります。

いろはにほへと ちりぬるを
わかよたれそ つねならむ
うゐのおくやま けふこえて
あさきゆめみし ゑひもせす

読み込むサイズを指定してみました。

with open('test.txt', mode='rt', encoding='utf-8') as f:
    read_text = f.read(15)

print(read_text)

出力はこうなります。

いろはにほへと ちりぬるを

readlineメソッド

ファイルから1行読み込みます。空行の場合の戻り値は改行コードのみの文字列になります。ファイルの終端に達すると空の文字列が返ります。

t = f.readline()

変数

内容

f

ファイルオブジェクト

t

文字列

試してみました。

read_text = []
with open('test.txt', mode='rt', encoding='utf-8') as f:
    read_text.append(f.readline())
    read_text.append(f.readline())

print(read_text)

出力はこうなります。

['いろはにほへと ちりぬるを\n', 'わかよたれそ つねならむ\n']

readlinesメソッド

ファイルを末端まで1行ずつ読み込みます。

t = f.readlines()

変数

内容

f

ファイルオブジェクト

t

文字列のリスト

試してみました。

with open('test.txt', mode='rt', encoding='utf-8') as f:
    read_text = f.readlines()

print(read_text)

出力はこうなります。

['いろはにほへと ちりぬるを\n', 'わかよたれそ つねならむ\n', 'うゐのおくやま けふこえて\n', 'あさきゆめみし ゑひもせす\n']

listメソッドで読み込む

ファイルオブジェクトをリストメソッドの引数にすることで、リストとして読み込みます。

L = list(f)

変数

内容

f

ファイルオブジェクト

L

文字列のリスト

試してみました。

with open('test.txt', mode='rt', encoding='utf-8') as f:
    read_text = list(f)

print(read_text)

出力はこうなります。

['いろはにほへと ちりぬるを\n', 'わかよたれそ つねならむ\n', 'うゐのおくやま けふこえて\n', 'あさきゆめみし ゑひもせす\n']

forループで読み込む

forループを使ってファイルオブジェクトから読み込みます。

試してみました。

read_text = []
with open('test.txt', mode='rt', encoding='utf-8') as f:
    for line in f:
        read_text.append(line)

print(read_text)

出力はこうなります。

['いろはにほへと ちりぬるを\n', 'わかよたれそ つねならむ\n', 'うゐのおくやま けふこえて\n', 'あさきゆめみし ゑひもせす\n']

公開日

広告