python读取txt文件的行数_如何用Python快速统计文本的行数

本文介绍了如何使用Python高效地统计txt文件的行数,通过读取大块文本并利用bytes的count方法计数换行符,实现了比wc -l更快的统计方式。测试显示,这种方法在处理不同规模的文本文件时,性能优于wc -l。
摘要由CSDN通过智能技术生成

通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。

要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数。为了尽量提高速度,我们需要尽量多读一些文本然后一起处理。统计换行符的个数可以用bytes内置的count方法。

代码如下:

from __future__ import print_function

import time

if __name__ == '__main__':

import sys

start = time.time()

with open(sys.argv[1],'rb') as f:

count = 0

last_data = '\n'

while True:

data = f.read(0x400000)

if not data:

break

count += data.count(b'\n')

last_data = data

if last_data[-1:] != b'\n':

count += 1 # Remove this if a wc-like count is needed

end = time.time()

print(count)

print((end-start) * 1000)

上面的代码中,我们将文件尾没有换行符的不完整的部分也算作一行,这跟wc -l略有区别,如果要跟wc -l一致的话,可以将带注释的行删掉。

这里没有处理universal newline、忽略空行等逻辑,如果需要这些功能,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值