python读取文件指定行数据_Python读取文件某行数据

文本处理是脚本语言的强项,有很多文本处理都用perl写原因是感觉简洁,其实python做起来也是十分简单的,只不过自己不熟

从文件中读取指定的行,依赖linecache这个模块很容易做到

$ cat test.txt

1111111111111

222222222222

3333333333333333

4444444444

555555555555

>>> import linecache

>>> theline = linecache.getline(‘test.txt’, 3)

>>> print theline

3333333333333333

如果想要对一个文件的许多行进行多次读取处理的时候,linecache会很有用,从这个模块的命名就可以看出来。linecache会缓存一些信息以避免重复工作。当你不需要从缓存中获得行数据时,可以调用模块的clearcache函数来释放作为缓存的内存,假如磁盘上的文件发生了改变,还可以调用checkcache,并确保缓存中存储的是最新的信息

由于linecache读取并且缓存了你指定文件名中所有文本,所以,如果文件比较大,而只需要读取某一行,那么感觉有些得不偿失。如果考虑性能,正好这里是瓶颈,那么可以封装成一个函数,可以适当提升运行速度

#!/usr/bin/env python

def getline(thefile, line_number):

if line_number < 1:

return ”

for current_line_number, line in enumerate(open(thefile, ‘rU’)):

if current_line_number == line_number – 1:

return line

return ”

theline = getline(‘test.txt’, 3)

print theline

这里需要注意的是enumerate是从0开始计数的,而line_number是从1开始的,所以比较的时候必须是line_number – 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值