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为tornado添加recaptcha验证码功能
Feb 26 Python
Python栈类实例分析
Jun 15 Python
python脚本设置系统时间的两种方法
Feb 21 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python中装饰器学习总结
Feb 10 Python
python flask中静态文件的管理方法
Mar 20 Python
Python统计单词出现的次数
Apr 04 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
Python生成九宫格图片的示例代码
Apr 14 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
数据库的日期格式转换
2006/10/09 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
php计算函数执行时间的方法
2015/03/20 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
js微信分享API
2020/10/11 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
Python fileinput模块使用实例
2015/06/03 Python
浅谈python对象数据的读写权限
2016/09/12 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
django foreignkey(外键)的实现
2019/07/29 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
机械制造与自动化应届生求职信
2013/11/16 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
办护照工作证明
2014/10/01 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
人与自然观后感
2015/06/16 职场文书
保险公司增员口号
2015/12/25 职场文书
Python学习之os包使用教程详解
2022/03/21 Python