本文介绍了多种方法用于计算文件的行数。首先,最简单的方法是将文件读入一个列表,然后统计列表的长度来得到行数。然而,对于非常大的文件,这种方法可能会变慢甚至失效。为此,文章提供了使用循环的方法,通过遍历文件来统计行数。另外,还介绍了一种处理大文件的快速方法,即统计文件中换行符的个数。此外,文章还提到了linecache库,该库可以预先将文件读入缓存,提高读取大文件的效率。它还提供了通过linecache库获取文件指定行内容的方法。这些方法都能够有效地计算文件的行数,并适用于不同大小的文件。
计算文件的行数,最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了。
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预先把文件读入缓存起来,后面如果你访问该文件的话就不再从硬盘读取
读取文件某一行的内容(测试过1G大小的文件,效率还可以)
import linecache
count = linecache.getline(filename,linenum)
用linecache读取文件内容(测试过1G大小的文件,效率还可以)
str = linecache.getlines(filename)
str为列表形式,每一行为列表中的一个元素。
本文介绍了几种有效的计算文件行数的方法,包括将文件读入列表并统计长度、使用循环遍历文件、统计换行符数量及利用linecache库提高大文件处理效率。
642

被折叠的 条评论
为什么被折叠?



