【Python入門】read()でテキストファイルの内容を一気に読み込み、全部表示する

プログラミングの基礎

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

前回は文字を続けて入力して、複数行のテキストファイルを作ってみました。

<過去記事>

break文で用が済んだらループからさっさと脱出できる

テストとして、こんな感じの5行のダミーファイルができました。

 

今度は、こちらのテキストファイルの内容を読みだして、表示させてみましょう。

実は以前に、ファイルをオープンしてその内容を読み込む方法は学習しています。

簡単な内容なので、復習してみます。

1、まずファイルを読み込みモードで開きます。

読み込みモードは、’r’でしたね。

myfile = open(ファイル名, ‘r’)

2、次にこのファイル自体を示す変数myfileに対して、1行読み込むコマンドを出します。

myfile.readline()

このままだと人間には見えないので、print文で画面に出力させます。

print(myfile.readline())

3、最後にファイルを閉じるのは、お作法ですね。

myfile.close()

ところが、ここではreadline()という1行だけ読み込む関数を使っているため、複数行にまたがるファイルでは使えません。

こんな風に最初の1行しか表示されないからです。

 

read()関数でファイル全体を読み込む

C言語とかJava言語などでは、ファイルから1行読み込んで表示、ファイルの終端に達しているかチェックして、まだなら次の1行を読み込んで表示、、、というようにループしていきます。

ファイルの終端に来たら、whileループを抜けて終了に向かうことになります。

Pythonであれば、read()文を使えば、ファイル全体を読み込んでくれます。

ということで、先ほどの

myfile.readline()

となっていたところを

myfile.read()

に書き換えればOKです。

最後に、これまで書いたコード全体をここに記します。

# coding: utf-8

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

myfile.close()

 

ただし単純に表示するだけなら、これで十分ですが、行の中身を検査して何か条件に合えば(特定の文字列があるとか)、別の処理をするとかいう場合もあります。

その場合は1行ずつ読み込み、行単位で処理することになるでしょう。

ケースに応じて使い分けることになりますが、1行ずつ処理するパターンは、いずれまた。

<今日の要約ノート>

テキストファイル全体の内容を表示するには、ファイルを読み出しモード(’r’)で開き、read()関数で内容を一気に読み出せばよい。readline()は1行読むだけなので、その違いに注意。

 

コメント

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