テキストファイルを読み込む
テキストファイルの読み込み手順
Pythonでテキストファイルを読み込む手順は、以下のようになります。
- open()関数を使って、読み込みモードでファイルをオープンする
- read()などの読み込みメソッドを使って、ファイルを読み込む
- close()メソッドを使って、ファイルをクローズする
ファイルをオープンする
テキストファイルを読み込むためには、まずファイルをオープンしなければなりません。
open()関数を使って、テキストファイルをオープンします。
オブジェクト名 = open(ファイル名, "r")
メモ
"r" は読み込みモードです。
ファイルを読み込む
ファイルをオープンしたら、読み込みメソッドでファイルを読み込みます。
読み込みメソッドには、以下の種類があります。
read() | ファイル全体を読み込み、文字データに対して処理を行う |
readlines() | ファイル全体を読み込み、1行毎に処理を行う |
readline() | ファイルを1行ずつ読み込む |
ファイルをクローズする
ファイルを読み終わったら、ファイルをクローズします。
ファイルのクローズには、close()メソッドを使います。
オブジェクト名.close()
テキストファイルを読み込むPythonスクリプト
サンプルスクリプトで使うsample.txtの内容は、以下のようになります。
1 2 3 |
これは犬です。 あれは猫です。 こっちは鼠です。 |
read()メソッドを使ったファイルの読み込み
read()メソッドを使ったPythonスクリプトは、以下のようになります。
read()メソッドでファイル全体を読み込み、内容をデータの塊としてlines変数に格納します。
11行目の end="" は、最後の改行を無視します。
1 2 3 4 5 6 7 8 9 10 11 |
### ファイルオープン file = open("sample.txt", "r") ### read()メソッドを使った読み込み lines = file.read() ### ファイルクローズ file.close() ### 内容表示 print(lines, end="") |
実行例
> python textread1.py
これは犬です。
あれは猫です。
こっちは鼠です。
readlines()メソッドを使ったファイルの読み込み
readlines()メソッドを使ったPythonスクリプトは、以下のようになります。
readlines()メソッドでファイル全体を行単位で読み込み、内容をリストとしてlines変数に格納します。
lines変数はリストになっているので、for文を使ってひとつずつ値を取り出しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
### ファイルオープン file = open("sample.txt", "r") ### readlines()による読み込み lines = file.readlines() ### ファイルクローズ file.close() ### 内容表示 print(lines) for line in lines: print(line, end="") |
実行例
> python textread2.py
['これは犬です。\n', 'あれは猫です。\n', 'こっちは鼠です。\n']
これは犬です。
あれは猫です。
こっちは鼠です。
readline()メソッドを使ったファイルの読み込み
readline()メソッドを使ったPythonスクリプトは、以下のようになります。
readline()メソッドでファイルを1行ずつ読み込み、内容をline変数に格納して画面に表示します。
line変数が空になると、while文を終了します。
read()メソッドとreadlines()メソッドは、ファイルを一括して読み込んで内容を変数に格納しているので、画面に表示する前にファイルをクローズしていましたが、readline()メソッドでは、1行ずつ読み込んで変数に値を格納しているので、全ての処理が終了してからファイルをクローズしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
### ファイルオープン file = open("sample.txt", "r") ### readline()による読み込み while True: line = file.readline() if line == "": break ### 内容表示 print(line, end="") ### ファイルクローズ file.close() |
実行例
> python textread3.py
これは犬です。
あれは猫です。
こっちは鼠です。
テキストファイルに書き込む
テキストファイルの書き込み手順
Pythonでテキストファイルに書き込む手順は、以下のようになります。
- open()関数を使って、書き込みモードでファイルをオープンする
- write()などの書き込みメソッドを使って、ファイルに書き込む
- close()メソッドを使って、ファイルをクローズする
ファイルをオープンする
テキストファイルに書き込むために、ファイルを書き込みモードでオープンします。
オブジェクト名 = open(ファイル名, "w")
または
オブジェクト名 = open(ファイル名, "a")
メモ
"w" は上書きモード、"a" は追加モードです。
ファイルを書き込む
ファイルをオープンしたら、書き込みメソッドでファイルに書き込みます。
書き込みメソッドには、以下の種類があります。
write(文字列) | 引数で指定した文字列をファイルに書き込む |
writelines(リスト) | 引数で指定したリストの値をファイルに書き込む |
ファイルをクローズする
ファイルの書き込みが終わったら、ファイルをクローズします。
ファイルの読み込みと同じく、ファイルのクローズにはclose()メソッドを使います。
オブジェクト名.close()
テキストファイルに書き込むPythonスクリプト
write()メソッドを使ったファイルの書き込み
write()メソッドを使ったPythonスクリプトは、以下のようになります。
write()メソッドの引数に、書き込みたい文字列を指定します。
1行ずつ改行したいので、文字列の最後に改行コード(\n)を付与します。
1 2 3 4 5 6 7 8 9 10 |
### ファイルオープン(上書きモード) file = open("sample.txt", "w") ### ファイル書き込み file.write("これは犬です。\n") file.write("あれは猫です。\n") file.write("こっちは鼠です。\n") ### ファイルクローズ file.close() |
実行例
> python textwrite1.py
> type sample.txt
これは犬です。
あれは猫です。
こっちは鼠です。
writelines()メソッドを使ったファイルの書き込み
writelines()メソッドを使ったPythonスクリプトは、以下のようになります。
writelines()メソッドの引数に、あらかじめ定義したリストを指定します。
1 2 3 4 5 6 7 8 9 10 11 |
### リスト定義 animal = ["これは猿です。\n", "あれは虎です。\n", "こっちは鳥です。\n"] ### ファイルオープン(追加モード) file = open("sample.txt", "a") ### ファイル書き込み file.writelines(animal) ### ファイルクローズ file.close() |
追加モードでファイルをオープンしているので、既存のファイルの最後から書き込まれています。
実行例
> python textwrite2.py
> type sample.txt
これは犬です。
あれは猫です。
こっちは鼠です。
これは猿です。
あれは虎です。
こっちは鳥です。
with文を使ったファイル操作
with文を使ったファイル操作のやり方を簡単に説明しておきます。
with文のメリットは、close()メソッドを使わなくてもファイルが自動的にクローズされることです。
ただし、with文の中の処理の記述にはインデントが必要になります。
with open(ファイル名, モード) as オブジェクト名:
処理
with文を使ってtextread1.pyを書き直したPythonスクリプトです。
1 2 3 4 5 6 7 8 |
### ファイルオープン with open("sample.txt", "r") as file: ### read()メソッドを使った読み込み lines = file.read() ### 内容表示 print(lines, end="") |