Python提供了不同的方法来逐行读取文件。如果文件非常大并且不能完全存储在内存中,则逐行读取文件非常有用,这样可以提高读取操作的效率和速度。逐块读取文件是一种很好的方法,也可以通过逐行读取来表示。
打开要读取的文件
在逐行读取文件之前,我们将打开文件进行读取操作。一个文件可以用不同的方式打开,比如读,写,附加,读二进制数据,写二进制数据。在本例中,我们的目的是读取模式为的文件 r
. 我们将使用 open()
函数中,我们还将提供r模式选项和要读取的文件名或路径。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line # here
在这里我们可以看到,我们将打开文件并设置文件处理程序 fp
接下来我们将逐行阅读。我们将使用 try
以便捕获异常和错误。
正确关闭打开的文件
打开一个文件会在系统上分配一些资源,我们应该在操作完成后释放这些资源。当逐行读取完成时,我们需要正确地关闭文件。我们可以用 close()
方法提供文件处理程序。我们还将在 finally
部分到 try
如果打开和读取文件时出现异常,我们将关闭此文件。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line # herefinally: fp.close()
从文件中读取单行
Python提供了3种方法来读取文件。 read()
函数将读取整个文件并返回内容。这对小文件很有用,但在处理大文件时很容易出错。 readline()
函数是逐行读取文件最有用的函数。 readline()
函数将从文件中读取一行,并将光标跳转到下一个文件以进行下一个readline()函数调用。因此,对于每个readline()调用,位置的游标都由文件处理程序存储。在下面的示例中,我们将使用fp file handler从myfile.txt文件中读取一行,然后关闭该文件。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line line = fp.readline() print(line)finally: fp.close()
使用readline()方法逐行读取文件
在本例中,我们将使用readline()方法逐行读取名为myfile.txt的完整文件。我们将使用 while
循环并检查 if
条件关键字。我们将创建一个无限循环 while True:
我们每一步都要读一行。在底部,我们将检查文件是否结束并且没有可读取的行 if not line:
如果文件结束了,我们就用 break
关键字。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line while True: # Read current line and put content to line line = fp.readline() #Print the line print(line) #If there is no line exit from loop if not line: breakfinally: fp.close()
用For循环逐行读取文件
我们也可以使用 for
循环以逐行读取文件。我们将打开名为 myfile.txt
并用 for line in
fp`文件处理程序。当没有行可读取时,for循环将结束。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line for line in fp: #Print the line print(line)finally: fp.close()
使用While循环逐行读取文件
我们也可以使用 while
循环以便逐行读取。我们将使用 readline()
功能。我们将在每次迭代中从文件中读取一行并设置为variable line
检查是否已经到了文件的结尾。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line #Read the first line line = fp.readline() while line: #Print the line print(line) #Read next line line = fp.readline()finally: fp.close()
将文件行转换为列表
在某些情况下,将给定的文件行转换为列表将非常有益。希望Python提供 readlines()
方法读取给定文件中的所有行,然后作为列表返回,其中每行都是给定列表中的一项。在本例中,我们将读取名为 myfile.txt
并返回一个名为 lines
. 我们可以通过提供准确的索引号来打印列表中的特定行。
#!/bin/pythontry: fp = open('myfile.txt') # We will read "myfile.txt" line by line #Read the first line lines = fp.readlines() print(lines[0]) print(lines[1]) print(lines[2]) print(lines[3])finally: fp.close()