• linecache:读取文本文件的指定内容


    楔子

    linecache是一个用于读取文本文件的库,它的特点是可以读取文件指定的行,并且还会放到内存中缓存起来。当再次读取文件相同的行时,会从缓存中获取,而不会从磁盘上重新读取,可以省去相应的IO操作。关于读取文件,其实使用内置函数open是足够的,但是有些时候使用linecache会更方便一些。下面我们就来看看用法。

    文本如下:

    读取文件指定的行

    linecache内部有一个getline方法,可以用来读取文件指定的行。

    import linecache
    # 表示读取文件1.txt的第2行
    print(linecache.getline("1.txt", 2))
    """
    晨意微寒秋渐深,侧伴无事俏佳人
    
    """
    # 由于结尾的换行符,所以会有一个空行
    

    我们知道索引是从0开始的,但是对于getline来说,就是按照文件的行号来的。比如1,就表示第一行。另外,使用getline的时候,如果指定读取的行超过了文件的最大行数也不会报错,而是返回空字符串。

    import linecache
    # 上面的1.txt只有6行,但是我们读取第8行
    print(linecache.getline("1.txt", 8) == "")  # True
    
    # 我们看到没有报错,而是返回了空字符串
    

    读取文件全部的行

    getline是读取指定的行,而getlines则是读取全部的行

    import linecache
    from pprint import pprint
    pprint(linecache.getlines("1.txt"))
    """
    ['你怎么这么熟练啊!
    ',
     '晨意微寒秋渐深,侧伴无事俏佳人
    ',
     '为了我,你就永远当个废物吧;为了能让我好好努力,就一生,都成为我的负担吧。
    ',
     '我喜欢这个世界上最糟糕的你,最喜欢了。
    ',
     '第一次,有了喜欢的人,还得到了一生的挚友,两份喜悦相互重叠,这双重的喜悦又带来了更多更多的喜悦
    ',
     '是我,是我先,明明都是我先来的,接吻也好,拥抱也好,还是喜欢上那家伙也好
    ']
    """
    

    我们看到使用getlines将文件内容全部读取出来了,相当于使用open函数读取之后再调用readlines()方法。

    有时候我们在统计文件的行数时,就可以使用这个方法,会方便一些。

    import linecache
    print(len(linecache.getlines("1.txt")))  # 6
    
  • 相关阅读:
    大数据、数据挖掘在交通领域的应用
    浅谈 kubernetes service 那些事(上篇)
    Docker中搭建zookeeper集群
    【kudu pk parquet】runtime filter实践
    【大数据之数据仓库】选型流水记
    【大数据之数据仓库】安装部署GreenPlum集群
    【大数据之数据仓库】GreenPlum优化器对比测试
    【大数据之数据仓库】GreenPlum PK DeepGreen(TPCH)
    【大数据之数据仓库】HAWQ versus GreenPlum
    用 PS 调整服务器时间
  • 原文地址:https://www.cnblogs.com/traditional/p/11874583.html
Copyright © 2020-2023  润新知