ファイルオブジェクトのメソッド

ファイルオブジェクトのメソッド

ファイルオブジェクトのメソッド

 ファイルオブジェクトのメソッドをまとめておきます。
 F はファイルオブジェクトを表します。

F.read()

 F.read() はファイルの内容をすべて読み込んで文字列として返します。

# リストRW-D

# ファイルへの書き込み
with open("pyfile_1.txt", "w", encoding = "utf-8") as f:
    f.write("今日もPython、明日もPython")

# ファイルの読み込み
with open("pyfile_1.txt", "r", encoding = "utf-8") as f:
    my_str = f.read()
    print(my_str)
今日もPython、明日もPython

 

F.readline()

 F.readline() はファイルを一行読み込んで文字列として返します。

# リストRW-E-1

# ファイルへの書き込み
with open("pyfile_2.txt", "w", encoding = "utf-8") as f:
    # 3行の文章を書き込む
    f.write("NumPyを使うと難しい数値計算ができます。\n\
    SciPyを使うと、もっと難しい数値計算ができます。")

# ファイルの最初の行を読み込む
with open("pyfile_2.txt", "r", encoding = "utf-8") as f:
    my_str = f.readline()
    print(my_str)
NumPyを使うと難しい数値計算ができます。

 引数に整数を渡すと、読み込む文字列のバイトサイズを指定できます。アルファベットは 1 文字 1 バイトなので、以下のコードで "NumPy" という 5 文字を取り出すことができます。

# リストRW-E-2

# ファイルから一行を読み込む
with open("pyfile_2.txt", "r", encoding = "utf-8") as f:
    my_str = f.readline(5)
    print(my_str)
NumPy

 

F.readlines()

 F.readlines() はファイルをすべて読み込んで行ごとに分割し、リストで返します。

# リストRW-F

# ファイルへの書き込み
with open("pyfile_3.txt", "w", encoding = "utf-8") as f:
    # 3行の文章を書き込む(オブジェクト指向の四大要素)
    f.write("カプセル化\n抽象化\nポリモーフィズム\n継承")

# ファイルの一行を読み込む
with open("pyfile_3.txt", "r", encoding = "utf-8") as f:
    my_list = f.readlines()
    print(my_list)
['カプセル化\n', '抽象化\n', 'ポリモーフィズム\n', '継承']

 引数に整数を渡すと、読み込む文字列のバイトサイズの上限を指定できます (サンプルコードは省略)。
 

F.write()

 F.write() はファイルに指定した文字列を書き込みます。

# リストRW-G

# ファイルへの書き込み
with open("pyfile_4.txt", "w", encoding = "utf-8") as f:
    f.write("Pythonは日本語で「ニシキヘビ」です")

# ファイルの読み込み
with open("pyfile_4.txt", "r", encoding = "utf-8") as f:
    my_str = f.read()
    print(my_str)
Pythonは日本語で「ニシキヘビ」です

 

F.writelines()

 F.writelines() は受け取ったイテラブルオブジェクト (リストやタプルなど) の要素を連結してファイルに書き込みます。

# リストRW-H

# 文字列のリストを用意
my_list = ["NumPy, ", "SciPy, ", "SymPy"]

# ファイルへの書き込み
with open("pyfile_5.txt", "w") as f:
    f.writelines(my_list)

# ファイルの読み込み
with open("pyfile_5.txt", "r") as f:
    my_str = f.read()
    print(my_str)
NumPy, SciPy, SymPy

F.close()

 開いた状態のファイルオブジェクトに対して F.colse() を用いると、ファイルを閉じます。

# リストRW-I

# ファイルを新規作成して読み込み専用モードで開く
f = open("pyfile_6.txt", mode = "w")

# ファイルを閉じる
f.close()

 閉じられたファイルは読み書きが一切できない状態です。
 リストRW-I で閉じた pyfile_6.txt を開こうとしてもエラーが返ります。

f.read()
ValueError: I/O operation on closed file.