当前位置: 首页 > news >正文

python判断文件读取结束_python中readline判断文件读取结束的方法

本文实例讲述了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中readline判断文件读取结束的方法

本文地址: http://www.cppcns.com/jiaoben/python/115877.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Memory Notification: Library Cache Object loaded into SGA
  • 加密机工作原理_观健电解水机工作原理是什么 电解水机工作原理【介绍】
  • ORA-02064: 不支持分布式操作
  • 无监督学习与有监督学习的本质区别是什么_监督学习 vs 无监督学习
  • wxpython使用_python图形界面开发之wxPython树控件使用方法详解
  • 无线开发,你凭什么吸引VC?
  • python画玫瑰图_python之windrose风向玫瑰图的用法-Go语言中文社区
  • 61A与PC的RS232通信,接收以中断方式
  • python怎么除去列表l中所有是x的元素_清华毕业大佬整理的Python基础22大知识点,自备热水,这货有点干...
  • 拥有至高无上的特权 使用system账户
  • python爬取js_python如何爬取js生成的数据?
  • 深入理解数据库并发控制原理
  • python怎么用for循环_python -for循环
  • AJAX的WEB开发工具
  • python入门知识图谱整理_零基础入门知识图谱技术到应用开发实战
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【mysql】环境安装、服务启动、密码设置
  • 0基础学习移动端适配
  • 2017届校招提前批面试回顾
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • bearychat的java client
  • CentOS从零开始部署Nodejs项目
  • es6--symbol
  • ES6--对象的扩展
  • Java 网络编程(2):UDP 的使用
  • JavaScript标准库系列——Math对象和Date对象(二)
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • spring-boot List转Page
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vue UI框架库开发介绍
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • Zepto.js源码学习之二
  • 经典排序算法及其 Java 实现
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 一、python与pycharm的安装
  • 正则学习笔记
  • 字符串匹配基础上
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • HanLP分词命名实体提取详解
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​补​充​经​纬​恒​润​一​面​
  • ​你们这样子,耽误我的工作进度怎么办?
  • (1)bark-ml
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (规划)24届春招和25届暑假实习路线准备规划
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (理论篇)httpmoudle和httphandler一览
  • (十八)用JAVA编写MP3解码器——迷你播放器