Python的一些进阶学习-2017.08.16
来源:互联网 发布:caffe中softmax 编辑:程序博客网 时间:2024/06/07 09:00
通过迭代器对文件切片
日常工作中会遇到多达4,5G的日志文件,如果把文件都一次读到内存,再进行切片比较浪费资源:
In [7]: f = open('access.log') In [7]: lines = f.readlines() In [7]: lines[1:19]
这样对文本是可以切片的,但是如果文件很大,就很浪费资源
可以用迭代器对文本进行切片,这个时候需要用到itertools包下的islice这个函数,
In [7]: from itertools import islice In [8]: islice? Type: type String form: <type 'itertools.islice'> Docstring: islice(iterable, [start,] stop [, step]) --> islice object Return an iterator whose next() method returns selected values from an iterable. If start is specified, will skip all preceding elements; otherwise, start defaults to zero. Step defaults to one. If specified as another value, step determines how many values are skipped between successive calls. Works like a slice() on a list but returns an iterator。
这个函数需要一个可迭代对象, 起始值,终止值, 步进值 ,下面试试看:
In [3]: from itertools import islice In [4]: islice(lines,100,300) Out[4]: <itertools.islice at 0x7f50152ddfc8> #说明是个可迭代对象 In [5]: for x in islice(lines,100,300): ...: print x
结果是 完美的 成功对文本进行迭代切片
阅读全文
0 0
- Python的一些进阶学习-2017.08.16
- Python的一些进阶学习-2017.08.07
- Python的一些进阶学习-2017.08.10
- Python的一些进阶学习-2017.08.14
- Python的一些进阶学习-2017.08.28
- Python的一些进阶学习-2017.10.17
- JavaScript进阶学习的一些建议
- JavaScript进阶学习的一些建议
- JavaScript进阶学习的一些建议
- 十分钟学习Python的进阶语法
- 十分钟学习Python的进阶语法
- 十分钟学习Python的进阶语法
- Python的学习笔记(二)(进阶)
- 用python写爬虫的一些技巧:进阶篇
- python学习--进阶篇
- python 进阶学习
- Python进阶学习
- Python 学习进阶
- Java常见面试题(基础)
- lenet解析
- 转移到Ubuntu平台-软件安装
- @Controller和@RestController的区别
- 无法获得锁/var/lib/dpkg/lock-open(11:资源暂时不可用)Ubuntu 16.04 安装VIM报错
- Python的一些进阶学习-2017.08.16
- UGUI 查找按钮名称
- 通过JS语句判断WEB网站的访问端是电脑还是手机
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- Elasticsearch5.5+SpringBoot 2.0实践
- SpringBoot中的Junit测试
- 线程的问题
- [RK3288][Android5.1] 让开机动画(BootAnimation)提前一秒结束
- ubuntu16.04中安装JDK、eclipse、pydev教程