Pythonでのファイルへの読み書き
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のメソッドを使うことで簡単に行うことができます。