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统计文件中去重后uuid个数的方法
Jul 30 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
详解python读取和输出到txt
Mar 29 Python
python hashlib加密实现代码
Oct 17 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
Django与pyecharts结合的实例代码
May 13 Python
Python WebSocket长连接心跳与短连接的示例
Nov 24 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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP实现数据分页显示的简单实例
2016/05/26 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
判断js数据类型的函数实例详解
2019/05/23 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
python套接字流重定向实例汇总
2016/03/03 Python
对Python3.6 IDLE常用快捷键介绍
2018/07/16 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python实现静态web服务器
2019/09/03 Python
Python tornado上传文件的功能
2020/03/26 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
ktv好的活动方案
2014/08/15 职场文书
融资合作协议书范本
2014/10/17 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP