第5章のP105のpreadのサンプル。
#/usr/bin/env #-*- encoding: utf-8 -*- import os def pythonic(): file = open(__file__, encoding='utf-8') orig = file.tell() print("before offset: {0}".format(file.tell())) offset = 10 file.seek(offset) lines = file.readlines() print(lines) file.seek(orig) print("after offset: {0}".format(file.tell())) file.close() def pythonic2(): file = open(__file__, encoding='utf-8') print("before offset: {0}".format(file.tell())) buffer_size = 100 offset = 10 s = os2.pread(file.fileno(), buffer_size, offset) print(s) print("after offset: {0}".format(file.tell())) file.close() if __name__ == '__main__': pythonic() pythonic2()
pythonicメソッドが、preadの内容をseekを使って書いたもの。自分でseekしなくても、preadがやってくれるので、preadの操作をしたいときは、os.preadを使ったほうがいい。 pread使えばreadした後、seekでreadした分戻らなくても、自動でread前の位置に戻ってる。