ファイルから1行読み込むお作法 〜ファイルを開き、readline()を使う

プログラミングの基礎

こんにちは。IT/経済ジャーナリストで投資家の渡辺です。

前回は「ファイル」を開いて、そこに文字を書き込むやり方を学習しました。

<過去記事>

ファイルを読み書きする 〜Pythonでのファイルの読み書きはとてもシンプル

せっかくファイルができたので、今回はそのファイルを読む方法について説明しますね。

具体的には、ディスク上にあるファイルをオープンして、中身を読み込んで表示する処理になります。

 

 

ファイルを開き、1行ずつ読み込む

それではいつも通り、PyCharmを起動し、今あるコードをいったん全部削除してください。

前回同様、1行ずつ解説しますので、それぞれの機能を考えながら、コードを1行ずつ書いていきましょう。

 

まず日本語が正しく表示されるように、最初の行で文字コードをUNICODE(UTF-8)に指定します。

日本語コードは複数ありますので、開くファイルの種類によっては文字化けすることがあります。

前回作ったファイルはUTF-8で作っているので、心配ありませんが。

# coding: utf-8

ベタですが、ファイル名は datafile という名前にします。

open()関数でファイルを開くのはもうOK?

すでに学習したように、ファイルはopen()関数で開いて使用します。

書き込みの時は write ということで ‘w’ を指定しました。

今回は読み込みなので、read ということで ‘r‘ を指定します。

前回の学習で作ったファイル名test.txtを、今度は読み込み用として開きます。

ファイル名は分かっているので、文字列として‘ ‘、または” “で括ります。

myfile = open(“test.txt”, ‘r’)

これで前回作られたtest.txtが、myfileという名称でファイルを開き、読めるようになりました。

myfileから1行読み込む

開いたテキストファイルですが、1行の文字列のみで作られています。

ここから1行読み込みます

ファイルから1行読み込むには、readline()関数を使います。

そこで、myfileから1行読み込むよう、指示を出します。

前回も学習しましたが、. で区切って命令を書きます。

このままだと読み込んだ内容を置く場所がないので、文字列の変数strに代入することにします。。

str = myfile.readline()

読み込まれた内容については、print()文で出力してください。

print(“ファイルの内容:”, str)

print()文のカッコの中をカンマ(,)で区切ることで、出力したい内容を続けることができるのは覚えているでしょうか。

myfile.close()

書き込みと同様、使い終わったファイルは、close()で閉じてください。

念のため、これまで作ったコードを以下にまとめます。

# coding: utf-8

myfile = open(“test.txt”, ‘r’)
str = myfile.readline()

print(“ファイルの内容:”, str)

myfile.close()

実際に動かしてみる

では、いつものように「Run ‘study00’」で実行してみてください。

以下のように、test.txtファイルの中身が表示されればOKです。

ちなみに、test.txtファイルの中身を再確認すると、こういう内容です(右側のエディタ)。

内容が正しく出力されていますね。

 

ファイルの読み込みとprint()文をくっつけてしまう

これでテキストファイルの読み出しができるようになりました。

少し、Pythonらしいプログラムの書き方についてもやってみます。

先ほど、1)いったんファイルの内容をreadline()で読み込み、2)読み込んだ文字列を変数strに置いて、3)変数strprint()文で出力しました。

以下のようなコードでした。

str = myfile.readline()

print(“ファイルの内容:”, str)

これを変数strを使わず、一気に出力させることもできます。

print()文のカッコの中に、そのままファイル読み出しのコードを書いてしまうのです。

まず、上の行にあるファイルから1行読み込む処理は、使用しないので削除するか、先頭に # を付けてコメント文として、Pythonが処理しないようにしてください。

これを「コメントアウト」といいます。

# str = myfile.readline()

その上で、これまでstrとなっていたprint()文の中身を直接ファイルから行を読み込んで、そのままその内容を出力するため、以下のように指定してください。

print(“ファイルの内容:”, myfile.readline())

ファイルの中身は同じなので、先ほどと同様、このように出力されるはずです。

このセミナーは初学者を想定しているため、多少面倒でも1つ1つステップを書いていますが、慣れてくるとこういうやり方もあるということです。

<今日の要約ノート>

open(ファイル名、’r’) は読み込みモードでファイルを開く。ファイルには名前を付け、そのファイルに対して操作を行う。readline()でファイルの内容を1行読み込む。

 

コメント

  1. […] ・ファイルから1行読み込むお作法 〜ファイルを開き、readline()を使う ・ファイルを読み書きする 〜Pythonでのファイルの読み書きはとてもシンプル […]

タイトルとURLをコピーしました