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

目次

テキストファイルを開く

open 関数を使うことでテキストファイルを読み込み用で開くことができます。

ここで日本語を含むファイルを開く場合は、encoding で適切なエンコーディング ("utf-8""shift_jis") を指定した方が無難だと思います。 理由は Python ドキュメントの「open」 より、encoding を指定しないとプラットフォーム依存でデコードされてしまうため。

Example

source code

fname = "data.txt"
with open(fname, "r", encoding="shift_jis") as reader:
    pass

1文字ずつ読み込む

ファイルオブジェクトの read メソッドを使い、引数に 1 を指定します。

使うことはあまり無いと思いますが、参考にソースコードを載せておきます。

Example

source code

fname = "data.txt"
with open(fname, "r", encoding="shift_jis") as reader:
    while True:
        ch = reader.read(1)
        if len(ch) == 0:
            break
        print("'" + ch + "'")

result

'こ'
'ん'
'に'
'ち'
'は'
'!'
'
'

1行ずつ読み込む (1)

ファイルオブジェクトの readline メソッドを使います。

Example

source code

fname = "data.txt"
with open(fname, "r", encoding="shift_jis") as reader:
    while True:
        line = reader.readline()
        if not line:
            break
        line = line.rstrip()
        print(line)

result

こんにちは!
Hello!

1行ずつ読み込む (2)

for 文にファイルオブジェクトを指定することでも、1行ずつ読み込むことができます。

Example

source code

fname = "data.txt"
with open(fname, "r", encoding="shift_jis") as reader:
    for line in reader:
        line = line.rstrip()
        print(line)

result

こんにちは!
Hello!

すべて読み込む

ファイルの内容をすべて読み込む場合は、引数を省略した read メソッドを使います。

Example

source code

fname = "data.txt"
with open(fname, "r", encoding="shift_jis") as reader:
    data = reader.read()
    print(data)

result

こんにちは!
Hello!

参考リンク