Python文件读取

文件读取应该比把数据写入文件更常见

readline方法可从一个文本文件中读取并返回一行文本数据,然后可以做相应的处理:

while True:

    line = input.readline()

    if not line:

        break

    process(line)

 

readlines方法一次读完整个文件,并返回一个各行数据的列表:

for line in input.readlines():

    process(line)

这种方法只有在物理内存足够用的情况下才会很有用,如果文件十分庞大,readlines可能会失败,或者导致虚拟内存不足,操作系统会让物理内存中的数据复制到磁盘上,性能急剧降低

 

比较好的方法是对文件对象执行一个循环,每次取得一行并处理,这样性能和效率比较好:

for line in input:

    process(line)

 

还可以读取文件中的一些或者所有字节,特别是在用二进制模式读取的情况下,可以用read方法。当不指定参数,read会读取并返回文件中所有剩余的字节;当read被传入一个整数参数N并调用时,它读取并返回下N个字节(或者所有剩余的字节,如果剩余的字节数少于N)。

还有seek和tell方法,支持对文件随机访问,处理包含很多固定长度记录的二进制文件很常用。

发表回复