1. 首页
  2. 运维开发
  3. Python

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

在用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)

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code