Python计算文件行数和读取某一行的内容的方法

发表时间:2018-09-28 10:47 | 分类:Python | 浏览:1,127 次

在用python处理文件的时候可能会碰到计算总行数和读取某行内容的情况。

计算文件行数

最简单的办法是把文件读入一个大的列表中,然后统计列表的长度。

例如:

count = len(open(filepath,'rU').readlines())

不过文件如果很大,那么这个代码可能很慢,也可能失效,而且占用瞬时内存,用循环会好点。

count = -1
for count, line in enumerate(open(thefilepath, 'rU')):
    pass
count += 1

另外一种处理大文件比较快的方法是统计文件中换行符的个数 '\n '(或者包含 '\n' 的字串,如在 windows 系统中)。

count = 0
thefile = open(thefilepath, 'rb')
while True:
    buffer = thefile.read(8192*1024)
    if not buffer:
        break
    count += buffer.count('\n')
thefile.close( )

参数 'rb' 是必须的,否则在 windows 系统上,上面的代码会非常慢。

linecache 是专门支持读取大文件,而且支持行式读取的函数库。 linecache 预先把文件读入缓存起来,后面如果你访问该文件的话就不再从硬盘读取。

读取某行内容

测试过 1 G 大小的文件,效率还可以。

import linecache
count = linecache.getline(filename,linenum)

用 linecache 读取文件内容

str = linecache.getlines(filename)

本文标签:

本文链接:https://www.sijitao.net/2725.html

欢迎您在本博客中留下评论,如需转载原创文章请注明出处,谢谢!

一键脚本 博客历程 留言联系 文章归档 网站地图 谷歌地图
Copyright © 2010-2024 章郎虫博客 All Rights Reserved.