linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。

linecache.getlines(filename)

从名为filename的文件中得到全部内容,输出为列表格式,以文件每行为列表中的一个元素,并以linenum-1为元素在列表中的位置存储

linecache.getline(filename,lineno)

从名为filename的文件中得到第lineno行。这个函数从不会抛出一个异常–产生错误时它将返回”(换行符将包含在找到的行里)。

如果文件没有找到,这个函数将会在sys.path搜索。

linecache.clearcache()

清除缓存。如果你不再需要先前从getline()中得到的行

linecache.checkcache(filename)

检查缓存的有效性。如果在缓存中的文件在硬盘上发生了变化,并且你需要更新版本,使用这个函数。如果省略filename,将检查缓存里的所有条目。

linecache.updatecache(filename)

更新文件名为filename的缓存。如果filename文件更新了,使用这个函数可以更新linecache.getlines(filename)返回的列表。

用法举例:

# cat a.txt

1a

2b

3c

4d

5e

6f

7g

1、获取a.txt文件的内容

>>> a=linecache.getlines('a.txt')

>>> a

['1a\n', '2b\n', '3c\n', '4d\n', '5e\n', '6f\n', '7g\n']

2、获取a.txt文件中第1-4行的内容

>>> a=linecache.getlines('a.txt')[0:4]

>>> a

['1a\n', '2b\n', '3c\n', '4d\n']

3、获取a.txt文件中第4行的内容

>>> a=linecache.getline('a.txt',4)

>>> a

'4d\n'

注意:使用linecache.getlines('a.txt')打开文件的内容之后,如果a.txt文件发生了改变,如你再次用linecache.getlines获取的内容,不是文件的最新内容,还是之前的内容,此时有两种方法:

1、使用linecache.checkcache(filename)来更新文件在硬盘上的缓存,然后在执行linecache.getlines('a.txt')就可以获取到a.txt的最新内容;

2、直接使用linecache.updatecache('a.txt'),即可获取最新的a.txt的最新内容

另:读取文件之后你不需要使用文件的缓存时需要在最后清理一下缓存,使linecache.clearcache()清理缓存,释放缓存。

这个模块是使用内存来缓存你的文件内容,所以需要耗费内存,打开文件的大小和打开速度和你的内存大小有关系。

转载于:https://blog.51cto.com/wangwei007/1246214

python linecache模块读取文件用法详解相关推荐

  1. python open方法下file模块_python-linecache模块读取文件用法

    python-linecache模块读取文件用法详解 linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. 1.linecache.getline ...

  2. python读取json格式文件大量数据,以及python字典和列表嵌套用法详解

    1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...

  3. Python for i in range ()用法详解

    for i in range ()作用: range()是一个函数, for i in range () 就是给i赋值: 比如 for i in range (1,3): 就是把1,2依次赋值给i r ...

  4. python控制画笔尺寸,Python画笔的属性及用法详解

    画笔有颜色.画线的宽度等属性. 1.turtle.pensize():设置画笔的宽度: 2.turtle.pencolor():没有参数传入返回当前画笔颜色:传入参数设置画笔颜色,可以是字符串如&qu ...

  5. Python中数组切片的用法详解

    Python中数组切片的用法详解 一.python中"::-1"代表什么? 二.python中":"的用法 三.python中数组切片 三.numpy中的整数数 ...

  6. python pandas模块_Python3.5 Pandas模块中Series用法详解

    Python3.5 Pandas模块中Series用法实例 本文实例讲述了Python3.5 Pandas模块之Series用法.分享给大家供大家参考,具体如下: 1.Pandas模块引入与基本数据结 ...

  7. 【Python】 linecache模块读取文件

    [linecache] 过往在读取文件的时候,我们通常使用的是这种模式: with open('file.txt','r') as f:line = f.readline()while line:pr ...

  8. python模块和包用法详解(__all__)

    1. 模块         Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句.         模块能定义函数,类和变 ...

  9. python实现图片读取为向量详解

    最近在实现cnn对于一系列图片的识别,于是就上网了解了一下图片读取的内容并整合一下. 在这里用了python3.6版本 使用的第三方库也只有numpy和PIL这两个库,所以上手很快. 下面按步骤详解: ...

最新文章

  1. java后台访问接口
  2. 百分点大数据技术团队:数据治理“PAI”实施方法论
  3. 为什么 HashMap 常用 String 对象作 key
  4. 又翻出来老电视剧看了看....
  5. break VS continue
  6. 浅谈C++中内存分配、函数调用和返回值问题
  7. 前端学习(2432):关于组件和目录名
  8. UI设计干货模板|引导网格系统
  9. 什么是Github?
  10. sql 时态表的意义_SQL Server 2016中的时态表的概念和基础
  11. 苹果iOS 11.3.1正式发布,修复iPhone 8触屏bug
  12. python数据导出excel_【python Excel】如何使用python将大量数据导出到Excel中的小技巧之一...
  13. 2018 计蒜之道 初赛 第一场
  14. 附件文件超过了服务器的大小,Exchange 2010修改附件大小限制
  15. #python#生物信息学 提取文本某列信息 #提取氨基酸序列并且提取氨基酸结构序列与之对应
  16. 【网速监控工具——TrafficMonitor 】的下载安装使用教程
  17. 用CreateToolhelp32Snapshot、Process32First、Process32Next枚举进程(BCB)
  18. element-ui:el-dialog遮罩层变黑
  19. Pandas学习(3)——Pandas基础
  20. xmd后缀名改mp3_GitHub - dh9527/xMDPlayer: 一个可以在线听网易云音乐、QQ音乐、酷狗音乐的音乐播放器,还可以让你听自己的网易云歌单哦!...

热门文章

  1. 华为云服务的购买和建站
  2. c#样条曲线命令_如何定制CAD功能区界面中的命令?
  3. php多态的实际运用,7.9.1 PHP多态的应用实例
  4. 数据结构实验之数组二:稀疏矩阵
  5. sdutoj-3837-素数链表
  6. 3.分布式文件系统HDFS之二
  7. 【Linux】29.扫描本机同一局域网内 某端口开启 的主机
  8. 【Linux】9.ssh登录与scp文件拷贝
  9. 记录下两个孩子在MineCraft里面还原公寓的经历
  10. Java数据结构和算法(二)——数组