python 用 while 读文件怎么检测文件结束

Python014

python 用 while 读文件怎么检测文件结束,第1张

python 3.3 下:

myfile = open('test.txt')

line = myfile.readline()

while line != '':

      print(line)

      line = myfile.readline()

myfile.close()

代码如下:

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()。

/python通过解释器内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联,open()函数格式如下:

/open()函数包含有两个参数:文件名和打开模式.当文件与执行文件在同一文件夹中,直接输入文件名,亦可输入文件的完整路径.打开模式是指以何种方式打开文件,python提供了7种打开模式.

/r/w/x/a模式与b/t/+模式可以组合使用,比如'rt'为文本只读.'rb'为二级制只读.

/文件使用结束后,需要使用close()关闭文件使用权限,释放内存.

/当文件使用文本格式打开时,读写按照字符串方式,采用计算机当前编码或指定编码.

/当文件以二进制方式打开时,读写按照字节流方式.

/python本身将文件读取为一个行序列.