ファイル読み書き (Python v3.1.1 ドキュメントメモ)
ドキュメント覚え書きと練習したコードのメモ
Open
http://docs.python.org/3.1/tutorial/inputoutput.html#reading-and-writing-files
# open()はファイルオブジェクトを返す f = open('/tmp/workfile', 'w')
-
-
- 第一引数はファイルパス
- 第二引数はモード(省略時はr)
-
(r: read, w: write, a: append, r+: read and write, b: binary)
Read
http://docs.python.org/3.1/tutorial/inputoutput.html#methods-of-file-objects
s = f.read()
-
-
- 読み込んだ文字列/バイトオブジェクトを返す。
- 引数省略時はファイル内の全ての内容が返される。
-
line = f.readline()
-
-
- 一行読み込み。
- 空行は\nを返す。
- 読む行が無くなったら空文字''を返す。
-
lst = f.readlines()
-
-
- 全ての行をリストで返す。
-
for line in f: print(line, end='')
-
-
- ループで読み込む
-
Write
http://docs.python.org/3.1/tutorial/inputoutput.html#methods-of-file-objects
num = f.write('This is a test\n')
-
-
- 文字列をファイルに書き込み、その文字数を返す
-
value = {'the answer', 42} s = str(value) f.write(s)
-
-
- 文字列以外のものはstringに変換しなければならない
-
Close
http://docs.python.org/3.1/tutorial/inputoutput.html#methods-of-file-objects
f.close()
-
-
- ファイルを閉じ、システムリソースを解放する
-
Withキーワード
http://docs.python.org/3.1/tutorial/inputoutput.html#methods-of-file-objects
with open('/tmp/workfile', 'r') as f: read_data = f.read() print(f.closed) # True
-
-
- 例外が起こっても適切にファイルをcloseしてくれる。
- try-finallyブロックよりも短かくて済む。
-