iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何利用Python快速统计文本的行数
  • 826
分享到

如何利用Python快速统计文本的行数

2024-04-02 19:04:59 826人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

​​通常我们会用wc -l来统计文件行数,不过用python统计也很简单。 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数。为了尽量提高速度,我们需要尽量多

​​通常我们会用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、忽略空行等逻辑,如果需要这些功能,程序会变得复杂一些。

使用三个文本文件进行测试,分别有一千万行、一亿六千万行、六亿四千万行。先用wc -l运行两次,然后用Python的wc.py。

运行结果:


[root@yz- test]# Docker run -it --rm -v `pwd`:/opt/workspace python:3 bash -c "cd /opt/workspace && time wc -l text.txt && time wc -l text.txt && time python3 wc.py text.txt"
10000000 text.txt

real    0m0.086s
user    0m0.072s
sys     0m0.013s
10000000 text.txt

real    0m0.080s
user    0m0.060s
sys     0m0.019s
10000000
64.38159942626953

real    0m0.150s
user    0m0.100s
sys     0m0.033s
[root@yz- test]# docker run -it --rm -v `pwd`:/opt/workspace python:3 bash -c "cd /opt/workspace && time wc -l text3.txt && time wc -l text3.txt && time python3 wc.py text3.txt"
160000000 text3.txt

real    0m1.322s
user    0m0.991s
sys     0m0.318s
160000000 text3.txt

real    0m1.313s
user    0m0.966s
sys     0m0.341s
160000000
838.7012481689453

real    0m0.908s
user    0m0.595s
sys     0m0.297s
[root@yz- test]# docker run -it --rm -v `pwd`:/opt/workspace python:3 bash -c "cd /opt/workspace && time wc -l text4.txt && time wc -l text4.txt && time python3 wc.py text4.txt"
640000000 text4.txt

real    0m5.805s
user    0m4.349s
sys     0m1.455s
640000000 text4.txt

real    0m5.787s
user    0m4.342s
sys     0m1.445s
640000000
3323.5926628112793

real    0m3.399s
user    0m2.255s
sys     0m1.108s

可以看到Python实际上是比wc -l更快的,主要因为纯Python的步骤很少,大部分时间都在read(),count()这样的C实现的过程中。wc更慢的原因猜想可能是默认的缓冲区更小,所以需要更多的read()

到此这篇关于如何利用Python快速统计文本的行数的文章就介绍到这了,更多相关Python快速统计文本的行数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用Python快速统计文本的行数

本文链接: https://www.lsjlt.com/news/159758.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用Python快速统计文本的行数
    ​​通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数。为了尽量提高速度,我们需要尽量多...
    99+
    2022-11-12
  • 怎么利用Python快速统计文本的行数
    本篇文章为大家展示了怎么利用Python快速统计文本的行数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。要快速统计一个文本文件中...
    99+
    2023-06-22
  • python如何快速计算函数运行时间
    这篇文章主要介绍python如何快速计算函数运行时间,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何快速计算函数运行时间计算一个函数的运行时间,你可能会这样子做import time  ...
    99+
    2023-06-27
  • 如何利用Python 快速找到最大文件
    现在的电脑差不多都是固态硬盘了,速度很快,但容量不会太大,经常会出现磁盘空间不足的情况,怎么办,删除那些不重要的最大的文件是最有效的办法。 那么如何用找到最大的文件呢?比如...
    99+
    2022-11-12
  • 如何利用Python文件索引快速加载大量数据文件?
    在现代数据分析和机器学习中,经常需要处理大量的数据文件。如何快速加载这些数据文件是一个非常重要的问题。Python提供了多种方法来读取和处理大量数据文件,例如使用Pandas库或者使用Python内置的文件读取方法。然而,当数据文件数量非...
    99+
    2023-09-28
    文件 索引 load
  • python如何统计并输出文件的行数
    在Python中,可以使用以下方法来统计并输出文件的行数: 方法1:使用readlines()方法逐行读取文件内容,并利用len()...
    99+
    2023-10-21
    python
  • 如何利用Python和JavaScript的函数来实现快速响应?
    在现代Web应用中,快速响应是非常重要的。用户希望能够在最短的时间内看到他们想要的结果。为了实现快速响应,我们需要使用一些技术来优化我们的代码。Python和JavaScript是两种非常流行的编程语言,它们都提供了优秀的函数来实现快速响...
    99+
    2023-10-02
    javascript 函数 响应
  • Linux如何统计文本的的行数/单词数和字符数
    小编给大家分享一下Linux如何统计文本的的行数/单词数和字符数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux系统中想要统计文本的行数、单词和字符数量,...
    99+
    2023-06-13
  • 不用工具,如何快速计算文件的MD5?
    网络安全现在是信息化系统中的必备要素。大家在各种软件下载站上下载的文件,到底有没有被植入木马,是否安全,你心里有底吗?植入木马的一种常用手段,就是黑客先拿下软件下载站点,甚至自己搭建一个站点,然后等你下载……。 恶意篡改文件下载网站导致的网...
    99+
    2023-09-04
    php 服务器 开发语言 网络安全 phpstorm
  • 自然语言处理中,如何使用Python数组快速提取Linux操作系统中的文本数据?
    自然语言处理是一项复杂而重要的任务,它涉及到处理大量的文本数据。在Linux操作系统中,我们通常需要从各种日志文件、配置文件和其他数据源中提取文本数据。这些文本数据可以包含各种信息,例如错误日志、系统性能指标等。使用Python数组可以快速...
    99+
    2023-10-01
    数组 自然语言处理 linux
  • 如何快速利用配置文件启用WCF元数据交换
    这篇文章给大家分享的是有关如何快速利用配置文件启用WCF元数据交换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。WCF还是比较常用的,于是我研究了一下WCF元数据交换,在这里拿出来和大家分享一下,希望对大家有用。...
    99+
    2023-06-17
  • 如何用 Python 和 NumPy 快速处理文件中的数值数据?
    在日常的数据处理中,我们经常需要从文件中读取数值数据,并对这些数据进行加工处理。Python 是一种十分强大的编程语言,可以用于各种数据处理任务。NumPy 是 Python 中一个非常常用的科学计算库,它提供了丰富的数值处理工具,可以帮...
    99+
    2023-11-04
    文件 关键字 numy
  • Linux系统上如何利用Git进行快速部署Spring应用程序?
    在软件开发过程中,部署是一个非常重要的环节。使用Git来进行部署可以极大地提高部署效率和减少出错率。本文将介绍如何在Linux系统上利用Git进行快速部署Spring应用程序。 准备工作 在开始之前,需要先确保系统上已经安装了Git和...
    99+
    2023-11-01
    linux git spring
  • 如何用Python进行金融市场文本数据的情感计算
    这篇文章将为大家详细讲解有关如何用Python进行金融市场文本数据的情感计算,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、tushare介绍tushare库是目前比较流行的开源免费的经济...
    99+
    2023-06-02
  • 如何利用PHP的API接口快速处理数组?
    PHP是一门广泛应用的编程语言,特别是在Web开发领域。在PHP中,数组是一种非常常见的数据类型。处理数组是PHP开发人员的日常工作之一。API接口是一种常用的数据交互方式。本文将介绍如何利用PHP的API接口快速处理数组。 一、什么是AP...
    99+
    2023-10-09
    api 接口 数组
  • Ubuntu系统下如何用命令行快速打开各类型文件
    这篇文章给大家分享的是有关Ubuntu系统下如何用命令行快速打开各类型文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Ubuntu下,通常用命令行打开文本文件,比如用命令gedit、more、cat、vim、...
    99+
    2023-06-13
  • Shell中如何使用Python数据类型进行快速编程?
    Shell是一种常用的命令行界面,它通常被用来执行各种系统管理任务。而Python是一种高级编程语言,具有强大的数据处理能力。那么,我们如何在Shell中使用Python数据类型进行快速编程呢? 本文将介绍在Shell中使用Python数...
    99+
    2023-10-13
    数据类型 打包 shell
  • js如何实现多行文本框统计剩余字数功能
    这篇文章给大家分享的是有关js如何实现多行文本框统计剩余字数功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:代码如下:<!DOCTYPE html>...
    99+
    2022-10-19
  • 如何使用Python快速打开一个百万行级别的超大Excel文件
    小编给大家分享一下如何使用Python快速打开一个百万行级别的超大Excel文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有同学求助说,当他试图打开一个20M左右的excel文件时,无论是使用pandas的read_e...
    99+
    2023-06-06
  • 如何使用Python和Git来实现数组的版本控制和快速管理?
    在开发过程中,我们经常需要对数组进行修改和管理。而使用版本控制工具可以帮助我们记录每次修改的历史,并且可以方便地回滚到之前的版本。本文将介绍如何使用Python和Git来实现数组的版本控制和快速管理。 Git是一款流行的分布式版本控制系统...
    99+
    2023-05-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作