python中readline判断文件读取结束的方法


Posted in Python onNovember 08, 2014

本文实例讲述了python中readline判断文件读取结束的方法。分享给大家供大家参考。具体分析如下:

大家知道,python中按行读取文件可以使用readline函数,下面现介绍一个按行遍历读取文件的方法,通过这个方法,展开我们要讨论的问题:

filename = raw_input('Enter your file name')  #输入要遍历读取的文件路径及文件名

file = open(filename,'r')

done = 0

while not  done:

        aLine = file.readline()

        if(aLine != ''):

            print aLine,

        else:

            done = 1

file.close()   #关闭文件

上面是我们经常看到的按行遍历一个文件方法,你可能已经注意到我在代码中写的if(aLine != '' ):部分。当readline读取到为空的时候,意味着读到了文件的结束。这个时候,问题就在这里,很多人会想,是不是遇到一个空行,也会被认为是文件的结束呢?这就引入了标题的问题。

事实上,文件的空白行并不会返回一个空行。因为在每一行的末尾还有一个或者多个分隔符,因此“空白行”至少会有一个换行符或者系统使用的其他符号。所以,即使文件中真的包含一个“空白行”,读入的行也不是空的,这就意味着在真实遍历读取到文件结束之前,程序实际上是不会停止的

readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用:
Python .readlines()

示例如下:

fh = open('c:\autoexec.bat')

 for  line in  fh.readlines(): 

 print  line

       
.readline() 和 .readlines() 之间的差异是后者一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。另一方面,.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 .readline()。

readlines返回行数问题

官方文档这样写的:
If the optional sizehint argument is present, instead of reading up to EOF, whole lines totalling approximately sizehint bytes (possibly after rounding up to an internal buffer size) are read.

确实是指定大小啊并且会受内部缓冲区大小影响向上取整到内部缓冲区大小。内部缓冲区大约是8k也难怪我每次测试文件大小都是8k(8192)倍数

#!/usr/bin/env python

f=open('a.txt').readlines(1)

open('b.txt','w').writelines(f)

open('c.txt','w').writelines(open('a.txt').readlines(200))

open('d.txt','w').writelines(open('a.txt').readlines(9200))

open('e.txt','w').writelines(open('a.txt').readlines(26000))

open('f.txt','w').writelines(open('a.txt').readlines(40000))

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python中os操作文件及文件路径实例汇总
Jan 15 Python
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
Python subprocess模块详细解读
Jan 29 Python
tensorflow 获取模型所有参数总和数量的方法
Jun 14 Python
Python格式化日期时间操作示例
Jun 28 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
Django实现随机图形验证码的示例
Oct 15 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
Python实现基于HTTP文件传输实例
Nov 08 #Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 #Python
Python set集合类型操作总结
Nov 07 #Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 #Python
Python的subprocess模块总结
Nov 07 #Python
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 #Python
Python实现的简单发送邮件脚本分享
Nov 07 #Python
You might like
PHP反射学习入门示例
2019/06/14 PHP
jquery 的 $("#id").html() 无内容的解决方法
2010/06/07 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
每天一篇javascript学习小结(Function对象)
2015/11/16 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
最新英语专业学生求职信范文
2013/09/21 职场文书
财务管理专业推荐信
2013/11/19 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
居住证明范文
2015/06/17 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Nginx配置Https安全认证的实现
2021/05/26 Servers
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS