文章来自《Python cookbook》. 翻译仅仅是为了个人学习,其它商业版权纠纷与此无关!
-- 61.182.251.99 [2004-09-24 22:52:50]
Contents
描述
随机读写文件
Credit: Luther Blissett
问题 Problem
从由固定长度的记录组成的文件中读取某处的一条2进制记录,而无需顺序读取一条条记录。
解决 Solution
文件中一条记录相对于文件头的字节位移是记录块大小与记录索引(从0开始)的乘积。可以这样,使用seek,然后读取:
讨论 Discussion
此方法仅适用于如下文件:文件(一般是2进制文件)包含的记录具有一致、固定大小, 而对于处理普通文本文件并不适和。为清晰起见,脚本中使用了rb作为open的第2个参数,以2进制打开文件,以备读取。当然,并不需要在第一次seek前打开文件,只要文件以2进制打开,可以在文件最后被关闭前多次使用seek和read.
参考 See Also
Python库参考file对象部分;
Perl Cookbook Recipe 8.12