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 を利用して、ファイルに読み書きしたのが分かります。