Python案例详解Python文件迭代的方法

python开发中,我们常常都会用到迭代器,所以对于python初学者来说,必须掌握迭代器相关知识。本文小编就将为大家分享有关迭代器的相关知识,觉得有必要了解或加深了解的童鞋,请往下看。

1.迭代器介绍
可迭代对象:列表、元组、字符串
迭代工具:for循环、列表解析、in成员关系测试、map内建函数
下面,通过具体的例子,给大家展示一下:

1. >>> for item in (1,3,4,5):

2.   print(item)

3.

4. 1

5. 3

6. 4

7. 5

8. >>> for alpha in ’abcde’:

9.   print(alpha)

10.

11. a

12. b

13. c

14. d

15. e

16. >>> for item in [1,2,3,4]:

17.   print(item)

18.

19.

20. 1

21. 2

22. 3

23. 4

24. >>>

上面的例子都是使用for循环结合in成员关系测试来迭代列表、元组与字符串。

2.文件迭代器
说到文件迭代,我们常常将for与readline结合起来使用,比如:

1. >>> handler=open(’output_file.txt’)

2. >>> handler.readline()

3. ’abcd\n’

4. >>> handler.readline()

5. ’efgh\n’

6. >>> handler.readline()

7. ’ijklstrstr\n’

8. >>> handler.readline()

9. ’nn’

10. >>> handler.readline()

11. ’’

12. >>> handler=open(’output_file.txt’)

13. >>> for line in handler.readlines():

14.   print(line)

15.

16. abcd

17.

18. efgh

19.

20. ijklstrstr

21.

22. nn

23. >>>

在上面的这个例子中,需要注意的一点就是,第一个程序一直调用handler.readline(),如果到了末尾,一直返回空的话,使用for加上handler.readlines(),如果到达底部,则直接停止。

在文件里面,其实还有有一个内建函数next可以达到上面的类似效果:

1. >>> handler=open(’output_file.txt’)

2. >>> handler.__next__ ()

3. ’abcd\n’

4. >>> handler.__next__ ()

5. ’efgh\n’

6. >>> handler.__next__ ()

7. ’ijklstrstr\n’

8. >>> handler.__next__ ()

9. ’nn’

10. >>> handler.__next__ ()

11. Traceback (most recent call last):

12.   File "<pyshell#35>", line 1, in <module>

13.     handler.__next__ ()

14. StopIteration

15. >>> handler.close ()

16. >>>

但是使用next函数实现这个效果的时候,需要注意的是,到达底部,会自动报错。next()是通过捕捉StopIteration来确定是否离开。

最后,我们来看看文件迭代性能问题:
1.当文件过大的时候怎么读取(超过100M)
这种情况下就不能使用handler.readlines()方法了,因为handler.readlines()是一次性把整个文件加载到内存里面去的。

在这种情况下,一般是一行行的来读取,可参考下面两种方法实现:

1. >>> for line in handler:

2.   print(line,end=’’)

3. abcd

4. efgh

5. ijklstrstr

6. nn

7. >>>

8.

9.

10.

11.

12. >>> handler=open(’output_file.txt’)

13. >>> while True:

14.   line=handler.readline()

15.   if not line:

16.     break

17.   print(line,end=’’)

18. abcd

19. efgh

20. ijklstrstr

21. nn

22. >>> handler.close ()

23. >>>

在上面这两种方法中,建议使用第一种for…in…方法,因为这种方法相比而言更快捷、简洁。

以上就是python迭代器和文件迭代相关知识的介绍,希望对初学者学习相关知识有所帮助。如需了解更多python相关干货,大家可直接进入麦子学院企业直通班学习。

时间: 2024-12-22 21:15:59

Python案例详解Python文件迭代的方法的相关文章

【Python】详解Python多线程Selenium跨浏览器测试

前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以检测不同浏览器或不同版本浏览器上,我们的web应用是否可以正常工作. 下面我们看看怎么利用python selenium进行自动化的跨浏览器测试. 什么是跨浏览器测试 跨浏览器测试是功能测试的一个分支,用以验证web应用能在不同的浏览器上正常工作. 为什么需要跨浏览器测试 通常情况下,我们都期望web类应用能

python线程详解

#线程状态 #线程同步(锁)#多线程的优势在于可以同时运行多个任务,至少感觉起来是这样,但是当线程需要共享数据时,可能存在数据不同步的问题. #threading模块#常用方法:'''threading.currentThread():返回当前的线程变量threading.enumerate():返回一个包含正在运行的线程的list,正在运行指:线程启动后,结束前,不包含启动前和终止后的线程threading.activeCount():返回正在运行的线程数量,与len(threading.en

python difflib详解

difflib -帮助进行差异化比较 这个模块提供的类和方法用来进行差异化比较,它能够生成文本或者html格式的差异化比较结果,如果需要比较目录的不同,可以使用filecmp模块. class difflib.SequenceMatcher 这是可以用来比较任何类型片段的类,只要比较的片段是可hash的,都可以用来比较,使用非常灵活.他源于1980,s的“完形匹配算法”,并且进行了一系列的优化和改进. 通过对算法的复杂度比较,它由于原始的完形匹配算法,在最坏情况下有n的平方次运算,在最好情况下,

举例详解Python中的split()函数的使用方法

这篇文章主要介绍了举例详解Python中的split()函数的使用方法,split()函数的使用是Python学习当中的基础知识,通常用于将字符串切片并转换为列表,需要的朋友可以参考下 函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)os.path.split():按照路径将文件名和路径分割开 一.函数说明1.split()函数语法:str.

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

centos7.0 安装日志--图文详解-python开发环境配置

centos7.0发布之后,就下载了everthing的DVD镜像,今天有时间,所以决定在vbox底下体验一番--- 上图: 默认是体验安装,作为一个忠实粉丝,我决定选择直接安装! 这个界面是这次新版本更新后改的,它把以前要下一步.上一步可以修改的操作全部集中到一个页面来,默认选择是下图这样,比如你想修改软件安装选项只要点击相应选项就可以了. 每次你更改安装选项之后,它都会自动从新计算安装源,如果你的选择的资源本地没有,还可以通过网络来安装,默认网络是不启用的,所以我们需要自己手工设置一下网络.

详解Python中re.sub--转载

[背景] Python中的正则表达式方面的功能,很强大. 其中就包括re.sub,实现正则的替换. 功能很强大,所以导致用法稍微有点复杂. 所以当遇到稍微复杂的用法时候,就容易犯错. 所以此处,总结一下,在使用re.sub的时候,需要注意的一些事情. 解释具体的注意事项之前,先把其具体的解释贴出来: re.sub re.sub(pattern, repl, string, count=0, flags=0) Return the string obtained by replacing the

转 python数据类型详解

python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(') 用单引号括起来表示字符串,例如: str='this is string'; print str; b.使用双引号(") 双引号中的字符串与单引号中的字符串用法完全相同,例如: str="this is string"; print str; c.使用三引号(''') 利用三

Python列表详解

Python列表详解: 创建一个列表,只要把逗号分隔的不同数据项使用方括号括起来即可. 比如:    list = [1, 2, 3, 4, 5 ]; 与字符串的索引一样,列表索引从0开始. Python列表函数即方法: Python所包含的函数: 1.cmp() 描述: cmp()用于比较两个列表的元素. 语法: cmp (list1,list2) 返回值: 如果比较的元素是同类型的,则比较其值,返回结果. 如果两个元素不是同一种类型,则检查它们是否是数字. 如果是数字,执行必要的数字强制类型