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

怎么利用Python快速统计文本的行数

2023-06-22 01:06:26 420人浏览 泡泡鱼

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

摘要

本篇文章为大家展示了怎么利用python快速统计文本的行数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。要快速统计一个文本文件中

本篇文章为大家展示了怎么利用python快速统计文本的行数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

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

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

代码如下:

from __future__ import print_functionimport timeif __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.txtreal    0m0.086suser    0m0.072ssys     0m0.013s10000000 text.txtreal    0m0.080suser    0m0.060ssys     0m0.019s1000000064.38159942626953real    0m0.150suser    0m0.100ssys     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.txtreal    0m1.322suser    0m0.991ssys     0m0.318s160000000 text3.txtreal    0m1.313suser    0m0.966ssys     0m0.341s160000000838.7012481689453real    0m0.908suser    0m0.595ssys     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.txtreal    0m5.805suser    0m4.349ssys     0m1.455s640000000 text4.txtreal    0m5.787suser    0m4.342ssys     0m1.445s6400000003323.5926628112793real    0m3.399suser    0m2.255ssys     0m1.108s

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

上述内容就是怎么利用Python快速统计文本的行数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网Python频道。

--结束END--

本文标题: 怎么利用Python快速统计文本的行数

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

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

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

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

下载Word文档
猜你喜欢
  • 怎么利用Python快速统计文本的行数
    本篇文章为大家展示了怎么利用Python快速统计文本的行数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。要快速统计一个文本文件中...
    99+
    2023-06-22
  • 如何利用Python快速统计文本的行数
    ​​通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数。为了尽量提高速度,我们需要尽量多...
    99+
    2022-11-12
  • 怎么利用Python快速找到最大文件
    本篇内容介绍了“怎么利用Python快速找到最大文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!思路:我们遍历目录,将文件路径和文件大小作...
    99+
    2023-06-25
  • Python怎么利用PyPDF2快速拆分PDF文档
    这篇文章主要讲解了“Python怎么利用PyPDF2快速拆分PDF文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么利用PyPDF2快速拆分PDF文档”吧!目录安装PyPDF...
    99+
    2023-06-20
  • python怎么统计英文字母的个数
    要统计英文字母的个数,可以按照以下步骤操作:1. 定义一个字符串,包含英文字母和其他字符。2. 使用`isalpha()`方法检查字...
    99+
    2023-09-21
    python
  • 怎么用python统计文件类型及数量
    要统计文件类型及数量,你可以使用Python的os模块来遍历文件夹中的文件,然后使用文件的后缀来判断文件类型。以下是一个示例代码: ...
    99+
    2023-10-21
    python
  • 利用Java怎么统计整数出现的次数
    利用Java怎么统计整数出现的次数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要求:随机产生50个10到50的整数,统计每个数字各出现几次,出现0次的数字不打印。代码如下...
    99+
    2023-05-31
    java ava
  • 怎么用python dataframe统计行列中零值的个数
    今天小编给大家分享一下怎么用python dataframe统计行列中零值的个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-06-29
  • 自然语言处理中,如何使用Python数组快速提取Linux操作系统中的文本数据?
    自然语言处理是一项复杂而重要的任务,它涉及到处理大量的文本数据。在Linux操作系统中,我们通常需要从各种日志文件、配置文件和其他数据源中提取文本数据。这些文本数据可以包含各种信息,例如错误日志、系统性能指标等。使用Python数组可以快速...
    99+
    2023-10-01
    数组 自然语言处理 linux
  • 怎么用vbs获取文本文件中的项计数
    本篇内容介绍了“怎么用vbs获取文本文件中的项计数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!复制代码 代码如下:Const F...
    99+
    2023-06-08
  • 使用Python怎么统计文件夹内所有pdf文件的页数
    这期内容当中小编将会给大家带来有关使用Python怎么统计文件夹内所有pdf文件的页数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,...
    99+
    2023-06-06
  • 怎么利用python执行txt文件中的代码
    这篇文章主要为大家展示了“怎么利用python执行txt文件中的代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用python执行txt文件中的代码”这篇文章吧。前言:我们知道,pyth...
    99+
    2023-06-29
  • 怎么用Python快速揭示数据之间的各种关系
    本篇内容介绍了“怎么用Python快速揭示数据之间的各种关系”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!探索性数据分析(EDA)涉及两个基...
    99+
    2023-06-16
  • 怎么用python的write函数编辑文本
    使用Python的"write"函数可以编辑文本文件。下面是一个简单的示例,演示如何使用"write"函数编辑文本文件:python...
    99+
    2023-10-18
    python
  • 如何用Python进行金融市场文本数据的情感计算
    这篇文章将为大家详细讲解有关如何用Python进行金融市场文本数据的情感计算,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、tushare介绍tushare库是目前比较流行的开源免费的经济...
    99+
    2023-06-02
  • 怎么使用python统计字符在文件中出现的次数
    今天小编给大家分享一下怎么使用python统计字符在文件中出现的次数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、本项目...
    99+
    2023-07-05
  • 怎么样的Python脚本进行MySQL对所有表收集统计信息
    运用Python脚本进行MySQL对所有表收集统计信息,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。[root@MySQL01 scrip...
    99+
    2022-10-18
  • Java中的子文本怎么利用正则表达式进行获取
    Java中的子文本怎么利用正则表达式进行获取?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体方法如下:package cn.mingyuan.regexp.singlec...
    99+
    2023-05-31
    java 正则表达式 ava
  • 怎么用Python进行栅格数据的分区统计和批量提取
    小编给大家分享一下怎么用Python进行栅格数据的分区统计和批量提取,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有时候我们会有这样的想法,就是针对某个区域的栅格数据,要提取它的平均值或者其他统计指标,比如在一个省内提取多...
    99+
    2023-06-15
  • Python中怎么利用pandas实现求和运算和非空值个数统计
    今天就跟大家聊聊有关Python中怎么利用pandas实现求和运算和非空值个数统计,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。准备工作本文用到的表格内容如下:先来看一下原始情形:i...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作