Python はじめました:ファイル

Python.use(better) # Python はじめました記事一覧
ファイル

《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28

ファイル〈Python 3.0 版〉

% python3.0
>>> name = "temp.text"
>>> fw = open(name,"w")
>>> fw.writelines("ABC")

ファイル fw を書き込みモード "w" で開くとともに、メソッド writelines を利用して、文字列を要素とするシーケンスを書き込みます。

>>> fr = open(name,"r")
>>> fr.readlines()
[]

ファイル fr を読み込みモード "r" で開くとともに、メソッド readlines を利用して、ファイルの各行を要素とするリストを獲得します。ところが、ここで得られるのは、空のリスト [] です。これには理由があります。

>>> fw.flush()
>>> fr.readlines()
['ABC']

メソッド flush は、内部バッファーに保持された情報を、ファイルに書き込みます。すると、ファイルに文字列が書き込まれたのが分かります。

>>> fw.close()
>>> fr.close()

メソッド close を利用すると、ファイルを閉じ(リソースを解放し)ます。

>>> fr.readlines()
Traceback (most recent call last):
  ...
ValueError: I/O operation on closed file.

すでに閉じたファイルを読み書きしようとすると、例外 ValueError を生成して、エラーメッセージを出力します。

■ 事例
>>> name = "temp.text"
>>> fw = open(name,"w")
>>> fr = open(name,"r")
>>> s = ["{0} {1}\n".format(e,ord(e)) for e in "ABC"]; s
['A 65\n', 'B 66\n', 'C 67\n']
>>> fw.writelines(s)
>>> fw.flush()
>>> for e in fr.readlines():
...     print(e,end="")
... 
A 65
B 66
C 67

変数 s は、文字列を要素とするリスト保持します。メソッド writelines/readlines を利用して、ファイルに読み書きしたのが分かります。

ファイル〈Python 2.x 版〉

Python 3.0 では、組み込み関数 file は無効です。

Last updated♪09/03/09