Python

第1回【基礎編】ファイルの読み込み方法を学習する【Python講座】

初心者猫

Pythonの勉強だね!

ケタ猫

今回はファイルの読み込み方法について学習します。

初心者猫

ファイルの読み込みから頑張ろう。

ケタ猫

非常によく使う処理なので、便利な処理まで覚えておきましょう。

ファイル入出力

テキストファイルを利用して、ファイルの操作方法を学びましょう。 
まずは下のファイルを作成してください。 -> abc.txt

AAA
BBB
CCC
DDD
EEE

それでは早速、ファイルの中身を読み込んでみましょう。
open()でファイルを開き、close()でファイルを閉じます。close()しなければ、ファイルは開きっぱなしになってしまいます。

file = open('abc.txt', encoding='utf-8')
print(file.read())
file.close()
# AAA
# BBB
# CCC
# DDD
# EEE

ファイルを自動で閉じるためにwithを利用します。とても便利ですね。
close()を書かずに使うことができます。
withを使うときは、as *** として、名前を定義する必要があります。

with open('abc.txt', encoding='utf-8') as file:
    print(file.read())
ケタ猫

close()は書き忘れてしまうので、withを利用する方が一般的です。

ファイルの読込

それではファイルの内容を読み込んでみます。
read()を使えば、ファイルの全内容は全て読み込むことができます。

with open('abc.txt', encoding='utf-8') as file:
    text = file.read()
    print(text)
# AAA
# BBB
# CCC
# DDD
# EEE

readline()を使うと、ファイルを一行ずつ読み込むことができます。
覚えておくと便利です。

with open('abc.txt', encoding='utf-8') as file:
    print(file.readline())
    print(file.readline())
# AAA
#
# BBB

似ていますが、readlines()はファイルの全行をリストとして返します。
リストで処理したい場合は使いたいところです。

with open('abc.txt', encoding='utf-8') as file:
    lines = file.readlines()
    print(lines)
# ['AAA\n', 'BBB\n', 'CCC\n', 'DDD\n', 'EEE']

ループを使う

ループを使うことで、一行ずつ細かく処理することができます。

with open('abc.txt', encoding='utf-8') as file:
    for row in file:
        print(row)

末尾の改行を削除するのには、rstrip()を使います。

with open('abc.txt', encoding='utf-8') as file:
    for row in file:
        print(row.rstrip())

csvファイルの場合は、”,”で区切るために、このような処理が便利です。

with open('abc.txt', encoding='utf-8') as file:
    for row in file:
        columns = row.split(',')
        print(columns)

それでは次回にまた!