当前位置: 首页 > 编程笔记 >

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

仉嘉泽
2023-03-14
本文向大家介绍python中readline判断文件读取结束的方法,包括了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中的while循环文档时,他们说while表达式应该是True或False,这很有意义。 现在,函数返回字符串。那么这个while循环是如何工作的呢?

  • 本文向大家介绍python中判断集合范围的方法小结,包括了python中判断集合范围的方法小结的使用技巧和注意事项,需要的朋友参考一下 我们在比较数值大小的时候,会使用一些比较符号来进行判断。在python集合中也有这样的比较,但有一点要注意的是,我们比较的是集合之间的包容性,而不是简单数值之间的大小比较,这点在文章的开头就进行明确,也是对于我们python初学者的提醒。 集合可以使用大于(>)、

  • 本文向大家介绍javascript中判断json的方法总结,包括了javascript中判断json的方法总结的使用技巧和注意事项,需要的朋友参考一下 简单地说, JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串(伪对象) ,然后就可以在函数之间轻松地传递这个字符串,或者 在异步应用程序中将字符串从 Web 客户端传递给服务器端程序 。这个字符串看起来有点儿古怪(稍后会看到

  • 本文向大家介绍C#判断指定文件是否是只读的方法,包括了C#判断指定文件是否是只读的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#判断指定文件是否是只读的方法。分享给大家供大家参考。具体如下: C#可以通过FileInfo类获得文件属性,文件属性包含了文件是否是只读的 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍Python读写文件方法总结,包括了Python读写文件方法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了Python读写文件方法。分享给大家供大家参考。具体分析如下: 1.open 使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。 注:不能把open语句放在try块里,因为当打开文件出现异常时

  • 问题内容: 我有一个很大的文件4GB,当我尝试读取它时,我的计算机挂起了。因此,我想逐个读取它,并且在处理完每个块之后,将已处理的块存储到另一个文件中并读取下一个块。 这些零件有什么方法吗? 我很想有一个简单的方法。 问题答案: 要编写一个简单函数,只需使用: 另一个选择是使用和辅助功能: 如果文件是基于行的,则文件对象已经是行的惰性生成器: