Pythonでのファイルへの読み書き

2021/01/18PythonPythonの基本

記事内に広告が含まれています。

Pythonでファイルに対して読み込みと書き込みを行うには組み込み関数openを利用します。

Pythonでのファイルのオープン

Pythonでファイルをオープンする際は組み込み関数のopenを利用します。

openにはファイルをオープンする際のモードが存在し、modeというキーワード引数(Positional Argument)で指定できます。

文字 意味
'r’ 読み込み用に開く (デフォルト)
'w’ 書き込み用に開き、まずファイルを切り詰める
'x’ 排他的な生成に開き、ファイルが存在する場合は失敗する
'a’ 書き込み用に開き、ファイルが存在する場合は末尾に追記する
'b’ バイナリモード
't’ テキストモード (デフォルト)
'+’ open for updating (reading and writing)

キーワード引数(Positional Argument)についてはPythonのキーワード引数(Positional Argument)の使い方を参照してください。

f = open ("ファイル名", mode="a+" )

Pythonでのファイルからの読み込み

Pythonでファイルからの読み込みを行う場合はread()、readlines()、readline()などを使用して行います。

read()メソッドでのファイル読み込み

open関数で取得したオブジェクトのreadメソッドを使ってファイルからデータを読み込むとファイル内の全データを一括して文字列形式で読み込めます。

f = open( "test.txt", "r" )
f_data = f.read()
print( "f_data type={}".format( type ( f_data )))
print( f_data )
f.close()

上記の実行結果は

f_data type=<class 'str'>
Line No.1
Line No.2
Line No.3
Line No.4
Line No.5

になります。

注意としてはopenで開いたファイルはファイルを利用しなくなった時点でcloseして終了します。

readlines()メソッドでのファイル読み込み

open関数で取得したオブジェクトのreadlinesメソッドを使ってファイルからデータを読み込むとファイル内の全データを一括してリスト形式で読み込めます。

f = open( "test.txt", "r" )
f_data = f.readlines()
print( "f_data type={}".format( type ( f_data )))
print( f_data )
f.close()

上記の実行結果は

f_data type=<class 'list'>
['Line No.1\n', 'Line No.2\n', 'Line No.3\n', 'Line No.4\n', 'Line No.5\n']

になります。

注意としてはopenで開いたファイルはファイルを利用しなくなった時点でcloseして終了します。

readline()メソッドでのファイル読み込み

open関数で取得したオブジェクトのreadlineメソッドを使ってファイルからデータを読み込むとファイル内の1行ずつ文字列形式で読み込めます。

f = open( "test.txt", "r" )
f_data = f.readline()
print( "f_data type={}".format( type ( f_data )))
print( f_data )
f_data = f.readline()
print( "f_data type={}".format( type ( f_data )))
print( f_data )
f.close()

上記の実行結果は

f_data type=<class 'str'>
Line No.1

f_data type=<class 'str'>
Line No.2

になります。

注意としてはopenで開いたファイルはファイルを利用しなくなった時点でcloseして終了します。

Pythonでのファイルへの書き込み

Pythonでファイルへ書き込みを行う場合はwrite()、writelines()などを使用して行います。

write()メソッドでのファイル書き込み

open関数で取得したオブジェクトのwriteメソッドを使ってファイルへデータを書き込むには文字列形式でデータを渡します。

f = open( "test.txt", "a+" )
f.write( "Line No.6\n" )
f.write( "Line No.7\n" )
f.write( "Line No.8\n" )
f.close()

上記の実行でファイルの中身は

Line No.1
Line No.2
Line No.3
Line No.4
Line No.5
Line No.6
Line No.7
Line No.8

になります。

注意としてはopenで開いたファイルはファイルを利用しなくなった時点でcloseして終了します。

writelines()メソッドでのファイル書き込み

open関数で取得したオブジェクトのwriteメソッドを使ってファイルへデータを書き込むにはリスト形式でデータを渡します。

f_data = ["Line No.9\n", "Line No.10\n", "Line No.11\n"]
f = open( "test.txt", "a+" )
f.writelines( f_data )
f.close()

上記の実行でファイルの中身は

Line No.1
Line No.2
Line No.3
Line No.4
Line No.5
Line No.6
Line No.7
Line No.8
Line No.9
Line No.10
Line No.11

になります。

注意としてはopenで開いたファイルはファイルを利用しなくなった時点でcloseして終了します。

まとめ

Pythonでのファイルに対する読み書きは組み込み関数のopen関数を利用し、そのオブジェクトにあるreadやwriteのメソッドを使うことで簡単に行うことができます。

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ