こんにちは。IT/経済ジャーナリストで投資家の渡辺です。
前回は文字を続けて入力して、複数行のテキストファイルを作ってみました。
<過去記事>
テストとして、こんな感じの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行読むだけなので、その違いに注意。
コメント