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正则表达式的使用范例详解
Aug 08 Python
python实现SMTP邮件发送功能
Jun 16 Python
python实时分析日志的一个小脚本分享
May 07 Python
python监控linux内存并写入mongodb(推荐)
Sep 11 Python
Python用for循环实现九九乘法表
May 31 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
python提取照片坐标信息的实例代码
Aug 14 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python的pip有什么用
Jun 17 Python
Django-imagekit的使用详解
Jul 06 Python
Python中json.load()和json.loads()有哪些区别
Jun 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
php简单获取目录列表的方法
2015/03/24 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
2011/01/06 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
jQuery如何获取动态添加的元素
2016/06/24 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
JS判断数组那点事
2017/10/10 Javascript
Javascript 关于基本类型和引用类型的个人理解
2019/11/01 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
对python中的高效迭代器函数详解
2018/10/18 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Django之PopUp的具体实现方法
2019/08/31 Python
python实现经纬度采样的示例代码
2020/12/10 Python
Django中template for如何使用方法
2021/01/31 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
初三化学教学反思
2014/01/23 职场文书
小学生学习感言
2014/03/10 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
医学生求职自荐书
2014/06/12 职场文书
中文专业求职信
2014/06/20 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
开学典礼校长致辞
2015/07/29 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
python文件目录操作之os模块
2021/05/08 Python