基本的なファイル操作

ファイル操作の手順は
1.ファイル開く(オープン)
2.ファイル弄る(読んだり、書いたり)
3.ファイル閉じる(クローズ)
ファイルのオープンにはfile()を使う。
書式は、

file("ファイル名", "フラグ")

open("ファイル名", "フラグ")は、file("ファイル名", "フラグ")でもOK*1
フラグでファイルモードを指定。

r	読み取り専用
w	書き込み専用
a	追加(ファイルを開く時、ファイルの参照点は自動的にファイルの末尾に移動する)
r+	更新(読み取りと書き込み)
w+	ファイルを切り捨て(空にし)た後、そのファイルを読み書き用に開く
a+	ファイルを読み書き用に開く、参照点は自動的にファイルの末尾に移動
b	他のオプションと一緒に指定すると、ファイルをバイナリモードで開く

練習用のテキストファイルを作る(text.txt)

1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおかきくけこさしすせそ

ファイルは現在作業中のフォルダ(カレントディレクトリ)に保存することとする。
現在作業中のフォルダを知りたい時は以下

>>> import os
>>> print os.getcwd()

作業中のフォルダを変更したい時は以下

>>> import os
>>> os.chdir("c:\\")

Python Shell 上では¥記号は\(バックスラッシュとして表示される)→os.chdir("c:\\")

Python Shellで読み出しの練習
 用語:ファイルポインタ(現在の読み込み、書き込み位置)

>>>f = file('text.txt','r') #text.txtをopen
>>>f.readlines()		#ファイルの中の行すべてを含んだリストを返す
['1234567890
', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ
', 'あいうえおかきくけこさしすせそ']
>>>f.readline()		#ファイルから1行だけ読み取る
''			#readlinesの後なのでポインタがファイルの終端に
>>>f.tell()	#ポインタの現在位置
106L
>>>f.seek(0)	#ポインタをファイルの先頭に移動
None
>>>f.tell()	#ポインタがファイルの先頭に戻っているか確認
0L
>>>f.readline()	#もう一度ファイルから1行だけ読み取る
'1234567890
'
>>>f.readline()	#続けて一行
'ABCDEFGHIJKLMNOPQRSTUVWXYZ
'
>>>f.readline()	#さらに一行
'あいうえおかきくけこさしすせそ
'
>>>f.readline()	#最後
''
>>>f.seek(0)	#ポインタをファイルの先頭に移動
None
>>>f.read(10)	#10バイト分読む
'12345'
>>>f.read(10)	#続けて10バイト分読む
'67890'
>>>f.seek(0)	#ポインタをファイルの先頭に移動 
None
>>>f.read(2)	#一文字(全角なので2バイト)だけ読む
'1'
>>>f.seek(10,0)	#ファイルの先頭から10バイト分、ポインタを移動
>>>f.read(2)
'6'
>>>f.seek(20,1)	#現在の位置から20バイト分、ポインタを移動
>>>f.read(2)
'F'
>>>f.seek(-2,2)	#ファイルの終端から2バイト分前へポインタを移動
>>>f.read(2)
'そ'
>>>f.close()	#ファイルを閉じる

ファイルに書き込むにはf.write(string)

text.txtに「abc」を追加してみる

>>>f = open('text.txt','a')
>>>f.write('abc\n')	#ファイルに追加するときは\n(改行コード)を最後に付ける
None
>>f.close()

text.txtを開くと

1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおかきくけこさしすせそabc

となっているはず。
参考:
7.2 ファイルを読み書きする
http://www.python.jp/doc/release/tut/node9.html#SECTION009200000000000000000
2.3.8 ファイルオブジェクト
http://www.python.jp/doc/release/lib/bltin-file-objects.html

*1:Python 2.2以降