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中Continue语句的用法的举例详解
May 14 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
初步剖析C语言编程中的结构体
Jan 16 Python
pygame实现弹力球及其变速效果
Jul 03 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
用python代码将tiff图片存储到jpg的方法
Dec 04 Python
Python中@property的理解和使用示例
Jun 11 Python
django中瀑布流写法实例代码
Oct 14 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
Python字典的基础操作
Nov 01 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 不错的学习资料
2009/02/06 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
JS前端加密算法示例
2016/12/22 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
详解node child_process模块学习笔记
2018/01/24 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
js new Date()实例测试
2019/10/31 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
database面试题
2013/03/28 面试题
数控专业毕业生自荐信范文
2014/03/04 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
教育见习报告范文
2014/11/03 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
《帝国时代4》赛季预告 新增内容编译器可创造地图
2022/04/03 其他游戏