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 字符串split的用法分享
Mar 23 Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 Python
python实现斐波那契数列的方法示例
Jan 12 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
详解python分布式进程
Oct 08 Python
想学python 这5本书籍你必看!
Dec 11 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
详解Python self 参数
Aug 30 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
Jupyter notebook如何修改平台字体
May 13 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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
PHPMyAdmin 快速配置方法
2009/05/11 PHP
php实现监听事件
2013/11/06 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
如何打开php的gd2库
2017/02/09 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
Laravel 队列使用的实现
2019/01/08 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
python实现udp聊天窗口
2020/03/31 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
销售人员自我评价怎么写
2013/09/19 职场文书
迎新晚会主持词
2014/03/24 职场文书
初三学生个人自我评定
2014/04/06 职场文书
第一节英语课开场白
2015/06/01 职场文书
爱国电影观后感
2015/06/19 职场文书
Python+Appium新手教程
2021/04/17 Python