バリケンのPython日記 RSSフィード

2008-08-18

[] ファイルアクセス  ファイルアクセス - バリケンのPython日記 を含むブックマーク はてなブックマーク -  ファイルアクセス - バリケンのPython日記  ファイルアクセス - バリケンのPython日記 のブックマークコメント

open()関数

Pythonでファイルを利用するには、open()関数を使うよ。

「open(ファイル名, モード)」で、戻り値としてファイルオブジェクトが得られるよ。「ファイル名」は相対パス絶対パスでファイルの位置を文字列で与えるよ。「モード引数」はオプションで、省略すると'r'(ファイルからデータを読み込むことのみ可能)を指定したことになるみたいだよ。

「モード引数オプションには、'r'のほかに'w'(書き込み専用・すでにファイルがある場合はファイルをクリアし、先頭から書き込み)、'a'(書き込み専用・すでにファイルがある場合はファイルの末尾から追記書き込み)、'r+'(読み書き可能)が指定できるよ。さらに'b'を追記すると、ファイルをバイナリモードで開くことが出来るよ。バイナリモードに関する説明は、また今度。

ファイルオブジェクトのメソッドいろいろ

open()関数戻り値として得られたファイルオブジェクトに対して、いろいろなメソッドを呼び出すことでファイルに対して読み書きをすることが出来るよ。

read()メソッドは、引数で与えたバイト数のデータをファイルから読み込んで、その結果を文字列として返すよ。引数を省略すると、全てのデータを読み込むよ。

readline()メソッドは、ファイルから一行だけ読み込んで、その結果を文字列として返すよ。文字列の最後には改行文字が含まれるよ。空行であれば改行文字だけが返るよ。ファイルの終端であれば空の文字列が返るよ。

readlines()メソッドは、ファイルに入っているデータの全ての行からなる文字列のリストを返すよ。引数が与えられると、ファイルから指定されたバイト数を読み出して、さらに一行を完成させるのに必要なだけを読み出して、読み出された行からなるリストを返すよ。

write()メソッドは、引数で与えた文字列をファイルに書き込むよ。戻り値はNoneだよ。

tell()メソッドは、現在のファイルポインタの位置をファイル先頭からのバイト数で返すよ。

seek()メソッドは、。「seek(オフセット, 基準位置)」のように呼び出すことで、ファイルポインタの位置を変更するよ。「基準位置」が0ならばファイルの先頭、1ならば現在のファイルポインタの位置、2ならばファイルの終端を基準として、オフセット分だけファイルポインタの位置をずらすようにして位置を指定できるよ。「基準位置」を省略すると、0を指定したことになるよ。「オフセット」は負の数を指定するとファイルポインタを戻す(左に移動する)ことが出来るよ。

close()メソッドでそのファイルを閉じることができるよ。

じゃあ、ファイルオブジェクトに対していろんなメソッドを呼び出して試してみよう!

>>> f = open('test.txt', 'w')
>>> f.write('hoge')
>>> f.write('fuga')
>>> f.tell()
8L
>>> f.close()
>>> f = open('test.txt')
>>> f.read()
'hogefuga'
>>> f.read()
''
>>> f.tell()
8L
>>> f.seek(0)
>>> f.tell()
0L
>>> f.read()
'hogefuga'
>>> f.close()
>>> 

「8L」とか「0L」はlong型の数値なんだけど、説明はまた今度。

トラックバック - http://python.g.hatena.ne.jp/muscovyduck/20080818