超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

python Python初心者講座

第11章 Pythonでテキストファイルを読み込んでみよう(read、readlines、readline)

投稿日:2020-04-20 更新日:

9章では、「input」を使ってプログラムの外から値を入力しましたね。この章では、「テキストファイル」からのデータの読み込みについて解説したいと思います。(次章では「csvファイル」の読み込みについて解説します。)

解説内容

 

1.テキストファイルやcsvファイルって何?

さて、データの読み込みを解説する前に、「テキストファイル」や「csvファイル」が何かということを少し解説したいと思います。簡単にいうと、以下のようなものです。

  • 「テキストファイル」とは、メモ帳などで作ったファイル
  • 「csvファイル」とは、エクセルで作り、csv形式で保存したもの

そして、これらを分ける方法は、「拡張子」を見ればわかります。

え?「拡張子」って何?と思われた方もいらっしゃると思うので、簡単に解説すると、「ファイルの形を表しているもの」で、「ファイル名.〇←ここのこと」です。

ただし、この拡張子はデフォルトでは表示されないようになっていますので、下の手順で表示できるようにしてください。

  1. 左上にある、「整理」から「フォルダーと検索オプション」を選択します。
  2. 「表示」タブにし、「詳細設定」の「登録されている拡張子は表示しない」のチェックを外して下さい。

これで準備は完了です!

テキストファイルとは、拡張子がデフォルトで「txt」になっているファイルです。そして、csvファイルは名前の通り「csv」となっています。

さて、前置きが長くなりましたが、次から実際にこのファイルの読み込みを行っていきます!

 

2.テキストファイルを読み込んでみよう

テキストファイルを読み込む方法は、大きく分けて下の3つあります。

 

この中で個人的なおすすめは、「普段はreadlines」「データが大きいときはreadlineで処理を分ける」がおすすめです!(初心者の方はとりあえずreadlinesで良いと思います)

では、一つずつ解説していきます。

とその前に、読み込むテキストファイルを先に作っておきましょう!

メモ帳を開いて以下の文字をコピペし、python勉強用のフォルダに「practice.txt」という名前で保存してください。

12345
abcde
あいうえお

 

1.全体を一気に読み込む方法(read)

まず、全体を一気に読み込む方法「read」を使ってみましょう!

以下のコードを「practice.txt」を保存した場所で実行してください。(「spyder」の実行場所については、10章で解説しています!)

f = open('practice.txt', 'r', encoding='utf-8')
data = f.read()
f.close()
print(data)

すると、「practice.txt」に書いた内容がそのまま出力されたと思います。では、詳しく解説していきます。

まず、1行目の

f = open('practice.txt', 'r', encoding='utf-8')

ですが、これは「practice.txtという読み取りファイルを開く」という意味で、ファイルの開き方は、open(‘ファイル名’, ‘r’, encoding=’utf-8′)という形で使います。

 

「ファイル名」は、文字通り開きたいファイルの名前で、「r」は読み取り専用ファイルという意味です。(無くても読み取ることはできます)

そして、最後の「encoding=’utf-8′」は、文字コードを指定していて、日本語を使用する場合に必要になります!(今回の場合、「あいうえお」のところ)

そして、f = open() という形にすることで、開いたファイルを「f」という変数に割り当てています。

この辺りは、最初イメージしにくいかもしれませんが、ひとまず形を覚えてもらえば大丈夫です!

 

次に、2行目の

data = f.read()

ですが、「fというファイルをすべて読み込む」という意味になります。

ファイルを一括で読み込む方法は、ファイル.read()という形です。そして、それを「data」という変数に入れています。

 

次に、3行目の

f.close()

では、「f」というファイルを閉じる動作で、読み取り終わったファイルは必ず閉じておく必要があります。

そして最後に、4行目については、変数「data」に入れたものを出力しています。

これが、ファイルを一括で読み込む方法(read)の使用方法です。

 

2.全体を一気に読み込むが、1行ずつ扱える方法(readlines)

次に、全体を一気に読み込むが、1行ずつ扱える方法である「readlines」について解説していきます。下のコードを実行してください。

f = open('practice.txt', 'r', encoding='utf-8')
data = f.readlines()
f.close()
print(data)

すると、[‘12345\n’, ‘abcde\n’, ‘あいうえお’] という「list」で出力されたと思います。では、解説していきます。

 

先ほどの「read」が「readlines」になっただけですが、「readlines」を使用すると、1行ごとに「list」として保存されるという特徴があるため、出力も「list」型になっています。

なぜこの「readlines」がおすすめかというと、データを扱う時は1行ごとに扱うことが多く、読み込むだけで「list」として保存してくれるため、好きな行を呼び出しやすいからです。

例えば、2行目の「abcde」だけ呼び出したい場合、下のように書きます。

print(data[1])

ただし、「readline」で読み込むと、「\n」という文字が最後に入っていることに気が付くと思います。これは改行文字と言い、文字通り改行されていることを示します。

詳しい説明は省きますが、この改行をのけたい場合、以下のように「strip()」を付けることで改行を除くことができます。

print(data[1].strip())

 

3.1行ずつ読み込む方法(readline)

では最後に、1行ずつ読み込む方法である「readline」について解説していきます。以下のコードを実行してください。

f = open('practice.txt', 'r', encoding='utf-8')
for i in range(3):
    data = f.readline()
    print(data)

すると、「practice.txt」に書いた内容がそのまま出力されたと思います。では解説しますね。

「readline」の場合、1行のみ読み込むため、3行ある場合は3回「readline」で読み込む必要があります。そこで今回は「ループ処理」を用いて、「readline」による読み込みと書き出しを3回行っています。

ただし、下のように行と行の間が1つ空いてしまっていますね。

これも、「readlines」のときと同様に、改行コードである「\n」が残っているため生じています。そのため、下記のように書き換えることで、空白を除去することができます。

f = open('practice.txt', 'r', encoding='utf-8')
for i in range(3):
    data = f.readline()
    print(data.strip())

 

3.まとめ

この章では、「テキストファイルの読み込み」について解説しました。ポイントは以下のような点でしたね。

Point
  • ファイルを開くには「open(‘ファイル名’, ‘r’, encoding=’utf-8′)」を使う。
  • ファイル名.read() or readlines() or readline() の形で使用する。
  • read」は全体を一括で読み込む。
  • 「readlines」は全体を一括で読み込み、1行ごとに「list」として保存する。
  • 「readline」は1行のみ読み込む。

 

次の章では、少し話題に上がった「csvファイル」の読み込みについて解説したいと思います。

>>前回:第10章 Pythonのライブラリを使ってみよう

>>次回:第12章 Pythonでcsvファイルを読み込んでみよう

スポンサーリンク




スポンサーリンク




-python, Python初心者講座
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Pythonでcsvの読み込み(numpy,pandas対応)

Pythonでデータを扱う際に、データをcsvから読み込むことは多いと思います。 ただし、その方法はいくつかあり、最初はどれを使えばいいか迷うと思います。 そこで、今回はcsvファイルの読み込みについ …

pyinstallerを使ったPythonのexe化(重くならない方法)

今回は、「pyinstaller」を使ってPythonをexe化して配布できるようにする方法について解説したいと思います。 Pythonをexe化することで、Pythonの環境を構築していない人でも使 …

matplotlibの使い方(figure・axesや複数グラフの配置・サイズについて)

matplotlibでグラフを作成する方法には、大きく分けて2つの種類があります。 しかし、ネット上ではこの2種類のコードが混在しているため、使い分けについて意識しておかないと混乱することがあります。 …

第15章 Pythonでグラフを作成してみよう(matplotlib)

この章では、いよいよPythonを使ったグラフの作成について解説したいと思います。 解説内容 matplotlibの使い方を学ぼう 簡単なグラフを作成してみよう グラフにタイトルや軸ラベルを表示させよ …

第3章 Pythonの変数を使ってみよう

この章では、第2章で少し話が出てきた「変数」について、実際に使ってみましょう。変数は、プログラミングを行う上で大切なポイントなので、しっかり学んでいきましょう。 解説内容 変数って何? 変数を使ってみ …

スポンサーリンク





初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。