返回顶部
首页 > 资讯 > 后端开发 > 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://lsjlt.com/news/301773.html(转载时请注明来源链接)

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

猜你喜欢
  • 怎么利用Python快速统计文本的行数
    本篇文章为大家展示了怎么利用Python快速统计文本的行数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。要快速统计一个文本文件中...
    99+
    2023-06-22
  • 如何利用Python快速统计文本的行数
    ​​通常我们会用wc -l来统计文件行数,不过用Python统计也很简单。 要快速统计一个文本文件中的行数,其实就是要统计这个文本文件中换行符的个数。为了尽量提高速度,我们需要尽量多...
    99+
    2024-04-02
  • Python怎么利用PyPDF2快速拆分PDF文档
    这篇文章主要讲解了“Python怎么利用PyPDF2快速拆分PDF文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么利用PyPDF2快速拆分PDF文档”吧!目录安装PyPDF...
    99+
    2023-06-20
  • 怎么利用Python快速找到最大文件
    本篇内容介绍了“怎么利用Python快速找到最大文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!思路:我们遍历目录,将文件路径和文件大小作...
    99+
    2023-06-25
  • python怎么加快函数运行速度
    在python中加快函数运行速度的方法有以下几种使用内置函数,去掉属性访问from math import sqrt # 直接引用特定函数或属性import timedef func():lst = []for i in range(1, ...
    99+
    2024-04-02
  • python 代码统计文件的行数
    #!/usr/bin/python#encofing:utf8# 统计文件的行数import sysdef lineCount(fd):        n = 0        for i in fd:                n +...
    99+
    2023-01-31
    行数 代码 文件
  • 怎么用Python快速下载大文件
    本篇内容介绍了“怎么用Python快速下载大文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法一使用以下流式代码,无论下载文件的大小如何...
    99+
    2023-07-06
  • 如何利用Python文件索引快速加载大量数据文件?
    在现代数据分析和机器学习中,经常需要处理大量的数据文件。如何快速加载这些数据文件是一个非常重要的问题。Python提供了多种方法来读取和处理大量数据文件,例如使用Pandas库或者使用Python内置的文件读取方法。然而,当数据文件数量非...
    99+
    2023-09-28
    文件 索引 load
  • Python中怎么实现统计行数
    Python中怎么实现统计行数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python程序脚本文件LineCount.py的内容如下:import ...
    99+
    2023-06-17
  • python中怎么统计代码行数
    这篇文章将为大家详细讲解有关python中怎么统计代码行数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。流程首先判断传入参数是否为文件夹,不是则打印出提示,否则继续(无返回),获得目录后,y...
    99+
    2023-06-02
  • 怎么用BAT脚本快速编辑host文件
    这篇文章主要为大家展示了“怎么用BAT脚本快速编辑host文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用BAT脚本快速编辑host文件”这篇文章吧。一、用文本编辑软件比如记事本编写如下...
    99+
    2023-06-08
  • Python怎么快速生成本项目的requeirments.txt
    在Python项目中,我们通常需要使用许多第三方库来提供额外的功能和工具。但是,直接将这些库上传到Git仓库并不是一种好的做法,因为这会使得代码库变得过于臃肿,并且很难管理。此外,有时候在部署应用程序时也需要安装特定版本的依赖项。这时候,就...
    99+
    2023-05-14
    Python
  • Python实现统计文本文件字数的方法
    本文实例讲述了Python实现统计文本文件字数的方法。分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- import...
    99+
    2022-06-04
    文本文件 字数 方法
  • PHP中怎么利用range()函数快速创建数组
    本篇文章给大家分享的是有关PHP中怎么利用range()函数快速创建数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。range()函数可以快速创建从1到9的数字数组:<...
    99+
    2023-06-17
  • Shell脚本统计文件行数的8种方法
    获取单个文件行数 文件:test1.sh 行数:20 方法一 awk '{print NR}' test1.sh|tail -n1 如图所示: 方法二 awk 'END{print NR}' tes...
    99+
    2022-06-04
    种方法 脚本 行数
  • 怎么用python dataframe统计行列中零值的个数
    今天小编给大家分享一下怎么用python dataframe统计行列中零值的个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-06-29
  • python怎么统计英文字母的个数
    要统计英文字母的个数,可以按照以下步骤操作:1. 定义一个字符串,包含英文字母和其他字符。2. 使用`isalpha()`方法检查字...
    99+
    2023-09-21
    python
  • 利用Java怎么统计整数出现的次数
    利用Java怎么统计整数出现的次数?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。要求:随机产生50个10到50的整数,统计每个数字各出现几次,出现0次的数字不打印。代码如下...
    99+
    2023-05-31
    java ava
  • python如何统计并输出文件的行数
    在Python中,可以使用以下方法来统计并输出文件的行数: 方法1:使用readlines()方法逐行读取文件内容,并利用len()...
    99+
    2023-10-21
    python
  • 怎么用python统计文件类型及数量
    要统计文件类型及数量,你可以使用Python的os模块来遍历文件夹中的文件,然后使用文件的后缀来判断文件类型。以下是一个示例代码: ...
    99+
    2023-10-21
    python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作