Pythonにおけるファイルの読み込み

このくらいの気候がずっと続けばいいのにな、と思います。

今回はファイルの読み込みについて書きます。
基本的にはファイルの書き込みを行うときとほとんど同様の手順を踏みます。open()でファイルを開き、読み込んでclose()で閉じる。

今回はメモ帳に直接書き込む形でテキストファイルを作成しました。
もちろんファイルの書き込みを用いて作成することもできます。
このファイルは作業ディレクトリに保存します。

画像1

ファイルを開くときはopen("ファイル名","mode")のように記述します。読み込み(read)を行うときに用いるmodeは"r"です。読み書き両用のmodeとして"r+"がありますが今回は詳記しません。

>>> f = open("example4.txt","r")

上のように変数fを用いてファイルが開かれたとき、読み込みに使うメソッドはf.read()f.readline()です。 

# 上のコードの続き
>>> f.read()
'This is the 1st line.\nThis is the 2nd line.\nThis is the 3rd line.'
# ファイルのすべてを一度に返す \n は改行を表す文字
>>> f.read()
''
# すべて読み込んだので空白を返す
>>> f.close()
# 作業後はファイルを閉じる
>>> f2 = open("example4.txt","r")
>>> f2.readline()
'This is the 1st line.\n'         # 1行目のみ返す
>>> f2.readline()
'This is the 2nd line.\n'         # 2行目のみ返す
>>> f2.readline()
'This is the 3rd line.'           # 3行目のみ返す
>>> f2.readline()
''                                # すべての行を読み込んだので空白を返す
>>> f2.close()

いちいちf.readline()を記述するのは面倒でしょう。こういうときはfor文が役に立ちます。

>>> f3 = open("example4.txt","r")
>>> for line in f3:
...     print(line,end = "")      # end=""とは" "(つまり空白)を文の区切りとしてみなす、ということ
...
This is the 1st line.
This is the 2nd line.
This is the 3rd line.             # 1行ずつ返す
>>>f3.close()

次に数字の書かれたテキストファイルを作成します。

画像2

これを数値として読み込んで計算ができたら素敵ですよね。
しかし、実際そううまくは行かないのです…。

>>> f4 = open("example5.txt","r")
>>> a = f4.readline()
>>> a
'1\n'                  # どうやら1は文字列として認識されている
>>> b = f4.readline()
>>> b
'2\n'
>>> a + b              # 試しにa+bを計算してみると
'1\n2\n'               # 1や2は文字列として認識されているので1+2=3とはならない
>>> f4.close()

でも、どうしてもテキストファイルの数字を数値として扱い、計算に用いたい!
そんな時に便利なのが、JSON (JavaScript Object Notation)の標準モジュールであるjsonです。これは近いうちに書きます。


今回はこんなところで。

MU生活向上の会(MUQoL)は私のような初心者をはじめとした、さまざまなレベルの人が集まってプログラミングに触れ、互いの知見や制作物を共有する会です。あなたも参加してみませんか?興味のある方や疑問のある方は生活向上の会(@muprgm)まで気軽にDMを送ってくださいね。

この記事が気に入ったらサポートをしてみませんか?