在Python中的Readlines函数

在Python中的Readlines函数

  • Readlines()是Python中一个用于一次性逐行读取特定文件的函数。
  • 在使用暴力方法、循环和不同的迭代来读取文件时,它非常有用,能够减少时间复杂度。
  • 这是一个简单的函数,只需要一行代码,比起使用多个循环来读取文件要好得多。
  • 在C编程中,读取文件是一个相当困难的任务,但在Python中,由于readlines()函数的存在,实现起来非常容易。
  • readlines()函数只会从给定的文件中读取一整行,读取完毕后以列表的形式返回包含所有元素的整行。
  • 如果我们想要在普通读取模式下打开文件,readline()函数会返回一个字符串。
  • 如果我们想要在二进制模式下打开文件,readline()函数会返回一个二进制对象。
  • 在行的末尾添加一个换行符(“\n”)也是非常有益的。
  • 这个readlines()函数主要适用于小型文件,其中包含较少的数据,可以在较短的时间内读取整个文件。
  • 它首先将文件的内容一次性读入内存,然后将其分成多行。借助strip()函数的帮助,我们可以迭代整个列表,其中由readline()函数生成,并通过使用strip()函数,我们可以去除换行符”\n”。

Python的文件概念

Python编程语言具有用于编写、创建和读取文件的各种内置函数。Python处理两种类型的文件,一种是常规文本文件,另一种是主要使用二进制语言(0和1)编写的二进制文件。

  1. 文本文件: 这些文件以文本形式保存数据,并以特殊字符EOL(行结束)和换行字符(’\n’)作为默认终止符。
  2. 二进制文件: 这些文件以二进制序列形式保存数据,主要由0和1组成。

处理文件时需要执行以下基本步骤:

打开文件: 使用open()函数打开文件;在使用此函数时,必须传递文件名和访问模式作为参数。

这里的文件访问模式包括:

  1. 只读模式 ( r ): 用于从文件中读取数据。将文件定位到文件开头。如果文件不存在,将生成输入/输出错误。只读模式是打开文件的默认模式;在使用该模式时,不能编辑文件的数据或将其写入文件。
  2. 只写模式 ( ‘ w ‘ ): 用于向文件中写入数据,将文件定位到文件开头。如果文件不存在,将生成输入/输出错误。在使用该模式时,不能从文件中读取数据。
  3. 读写模式 ( ‘ r+ ‘ ): 此模式用于从文件中写入和读取数据。与只读模式相比,我们可以区分出在只读模式下不能向文件中写入数据,但是在此模式下可以读写文件中的数据。

例如,如果我们有一个名为hello.txt的文件,我们想要以写入模式打开它,我们可以使用以下代码:

File1 = open(“hello.txt”, “w”)

关闭文件: close函数用于释放文件所需的内存空间;当不再需要文件时,或者我们想要关闭整个文件并以不同的模式重新打开文件时,可以使用该方法。使用close()函数执行此操作,在此函数内部,我们不需要传递任何参数;可以通过使用文件名并用点.close函数提供对此函数的访问。

例如,如果我们有一个名为hello.txt的文件,我们想要以写入模式打开它,我们可以使用以下代码:

File1 = open(“hello.txt”, “w”) File1.close()

在文件中写入数据: 如其名称所示,我们可以很容易地预测在此方法中我们需要写入文件的内容。有两种方法可以写入文件:

  1. write(): 在此函数中,我们必须传递一个参数,即我们要插入文件中的字符串。 例如,如果我们有一个名为hello.txt的文件,我们想要以写入模式打开它,我们可以使用以下代码: File1 = open(“hello.txt”, “w”) File1.write(str) 这里,str是我们要插入文件中的字符串。
  2. writelines(): 在此函数中,我们必须传递一个数组或包含多个字符串的列表。它用于一次向文件中插入多个不同的字符串。 例如,如果我们有一个名为hello.txt的文件,我们想要以写入模式打开它,我们可以使用以下代码: File1 = open(“hello.txt”, “w”) File1.writelines(S) for S = [str1, str2, str3]

读取文件: 同样,在这里,我们可以预测我们在这里需要做什么;甚至在这个教程中,我们将详细介绍其中一种读取方法。在这种方法中,我们需要从特定的文件中读取数据。有三种从文件中读取数据的方法:

  1. Read ( ): 以字符串形式返回读取的字节数。读取n个字节;如果没有指定n,则读取整个文件。
  2. Readline ( ): 读取文件的一行并以字符串形式返回。对于指定的n,最多读取n个字节。readline ( )函数一次不读取超过一行;即使n超过一行,它也只会读取一行。readline ( )函数读取文件的一行并将其返回为字符串。它将整数值n作为参数,以一次读取的字符数。readline ( )方法非常高效,可以从非常大的文件中读取数据,因为它逐行获取数据并在屏幕上返回和打印。readline ( )返回包含换行符的文件的下一行。另外,如果到达文件的末尾,它会返回一个空字符串。
  3. readlines ( ): 读取所有行并将它们作为字符串元素返回到列表中。readlines ( )用于一次性读取所有行,然后将它们作为字符串元素返回到列表中。这个函数适用于小型文件,因为它将整个文件内容读取到内存中,然后将其拆分为单独的行。我们可以使用strip ( )函数迭代列表并使用strip ( )函数去除换行符 ‘ \n ‘ 字符。

现在让我们通过一个示例详细了解如何读取文件:

Python中读取文件的示例

示例1:

使用readlines ( )函数读取文件

# Python program to implement the file concept using readlines ( ) for reading a file
Fruits = ["Apple\n", "Orange\n", "Banana\n"]
# writing to file
file = open('hello.txt', 'w')
file.writelines(Fruits)                              # writelines is used to write the data into the file in                                                # the form of a list, by inserting multiple values at the same time, 
                                                       # here, we are taking the hello.txt file 
file.close()                                           # This instruction is used to close the file, i.e., hello.txt
# Using readlines()
file = open('hello.txt', 'r')
Statements = file.readlines()
count = 0
# Strips the newline character
for line in Statements:                                     # Using for loop to print the data of the file
  count = count + 1
  print("Statement{}: {}".format(count, line.strip()))

以上示例的输出:

在Python中的Readlines函数

示例2:

使用readline()函数读取文件

# Python program to implement the file concept using readline() for reading a file
Fruit = [ "Apple\n" , "Graphs\n" , "Mango\n" , "Orange\n" , "Kiwi\n" ]
# Writing to a file
file1 = open('new.txt', 'w')
file1.writelines((Fruit))                          # writelines is used to write the data into the file in                                                # the form of list, by inserting multiple values at a same time, 
                                                       # here we are taking new.txt file 

file1.close()                                       # This instruction is used to close the file, i.e., hello.txt

# Using readline()
file1 = open('new.txt', 'r')
count = 0
while True:
  count = count + 1
  # Get next line from file
  s = file1.readline()

  # if line is empty
  # end of file is reached
  if not s:
    break
  print("Statement{}: {}".format(count, s.strip()))
file1.close()

以上示例的输出:

在Python中的Readlines函数

示例3:

使用简单的for循环读取文件:

在这种方法中,我们不使用readline()函数,也不使用readlines()函数,因为我们已经在上面的示例中看到了这两个函数的使用;在这个方法中,我们将使用for循环打印文件的数据。我们将遍历文件的对象并逐行读取文件,虽然我们使用了一些Python预定义的内置函数。使用这些内置的Python函数,我们可以很容易地使用for循环隐式地迭代文件对象,结合使用可迭代对象。

## Python program to implement the file concept using the simple for loop for reading a file
Fruits = ["Apple \n", " Orange \n", "Banana \n", "Mango\n", "Pineapple\n" ]
# Writing to file
file2 = open('file2.txt', 'w')
file2.writelines(Fruits)           # writelines is used to write the data into the file in                                                
                                                 # the form of list, by inserting multiple values at a same time,
                                                       # here we are taking file2.txt file                                                
file2.close()                                        # This instruction is used to close the file, i.e., hello.txt

# Opening file
file2 = open('file2.txt', 'r')
count = 0
# Using for loop
print("Using for loop")
for line in file2:
count = count + 1
print("Statement{}: {}".format(count, line.strip()))
# Closing files
file2.close()

上面示例的输出:

在Python中的Readlines函数

示例4:

使用’ with ‘语句读取文件:

如果我们注意上面的3个示例,我们可以很容易地观察到,每当需要打开文件时,就需要关闭它;如果我们不关闭文件,那么程序中会产生几个错误,因为在我们不关闭文件之前,文件中的许多更改都不会生效。

因此,为了解决这个问题,我们将使用’ with ‘语句,在Python中主要用于异常处理,使代码更清晰、更易读。在这个示例中,您可以很容易地观察到,我们不再使用file.close()函数来防止文件,使用它可以自动完成。因此,它减少了代码行数,并使程序运行更快,实现更高效。

# Python program to implement the file concept using with statement for reading a file
Veges = ["Potato\n", "Onion\n", "Tomamto\n"]                             
# Writing to file
with open("file3.txt", "w") as file:     
  file.writelines(Veges)             # writelines is used to write the data into the file in                                                
                                                # the form of list, by inserting multiple values at a same time, 
                                                       # here we are taking file3.txt file 
# using readlines()
count = 0
print("Using readlines()")
with open("file3.txt") as file:
  Statements = file.readlines()
  for line in Statements:
    count = count + 1
    print("Satement{}: {}".format(count, line.strip()))
# Using readline()
count = 0
print("\nUsing readline()")
with open("file3.txt") as file:
  while True:
    count = count + 1
    line = file.readline()
    if not line:
      break
    print("Statement{}: {}".format(count, line.strip()))
# Using for loop
count = 0
print("\n Using for loop")
with open("file3.txt") as file:
  for line in file:
    count = count + 1
    print("Statements{}: {}".format(count, line.strip()))

以上示例的输出是:

在Python中的Readlines函数

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程