ファイル読み書き (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)

      • 改行は読み込み時にプラットフォームのもの(\n: Unix, \r\n: Windows)から\nに変換され、書き込み時に\nからプラットフォームのものに変換される。

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ブロックよりも短かくて済む。