如何使用Python从文本文件中读取整行?
有多种在Python中读取文件的方法。本文将介绍逐行读取文件的最常见方法。
阅读更多:Python 教程
使用readlines()方法
使用此方法,将打开一个文件并将其内容分成单独的行。此方法还会返回文件中每一行的列表。为了有效地读取整个文件,我们可以使用readlines()函数。
以下是使用file.endswith()方法删除交换文件的示例-
示例
以下是使用readlines()方法逐行读取文本文件的示例-
#打开数据文件
file = open("TutorialsPoint.txt")
#按行将文件读取为列表
content = file.readlines()
#关闭文件
file.close()
print(content)
输出
以下是上述代码的输出。
['欢迎来到Tutorials Point\n', '这是一个新文件。\n', '使用Python逐行读取文件\n', '谢谢!']
使用readline()方法
我们可以使用readline()方法获取文本文件的第一行。相比readlines(),使用readline()方法读取文件时只会打印一行。
示例
以下是使用readline()方法读取文本文件的单行的示例-
file = open("TutorialsPoint.txt")
#获取文件的起始行
start_line = file.readline()
print(start_line)
file.close()
输出
readline()函数只返回一行文本。如果要一次读取所有行,请使用readlines()。
以下是上述代码的输出-
欢迎来到Tutorials Point
注意 - readline()方法与其等效方式相比仅从文件中抽取一行。realine()方法还会在字符串的末尾添加尾随换行符。
我们还可以使用readline()方法为返回的行定义一个长度。如果没有指定长度,将读取整行。
使用while循环
可以使用while循环逐行读取指定文件的内容。首先使用open()函数以read模式打开文件来实现此目的。在while循环中使用open()返回的文件句柄来读取行。
while循环使用Python的readline()方法读取行。当使用for循环时,当到达文件结尾时循环会停止。然而,使用while循环不是这种情况,您必须不断检查文件是否已完成读取。因此,您可以在readline()方法返回空字符串时使用break语句来结束while循环。
示例
以下是使用while循环逐行读取文本文件的示例-
file = open("TutorialsPoint.txt", "r")
while file:
line = file.readline()
print(line)
if line == "":
break
file.close()
输出
以下是以上代码的输出 −
Welcome to Tutorials Point
This is a new file.
Reading a file line by line using Python
Thank You!
使用 for 循环
通过使用 Python 的 open() 函数以只读模式打开文件,开始处理文件。open() 函数将返回一个文件处理器。在 for 循环中,使用文件处理器一次从所提供的文件中读取每行。处理完成后,使用 close() 函数关闭文件处理器。
示例
以下是使用 for 循环按行读取文本文件的示例 −
file = open("TutorialsPoint.txt", "r")
for line in file:
print(line)
file.close()
输出
以下是以上代码的输出 −
Welcome to Tutorials Point
This is a new file.
Reading a file line by line using Python
Thank You!
使用上下文管理器
任何编程语言在文件管理方面都需要谨慎处理。处理文件时必须小心,以避免损坏。记住在打开文件后关闭资源非常重要。此外,Python 对同时打开多少个文件有限制。对于这些问题,Python 为我们提供了上下文管理器来帮助解决。
如果 Python 使用 with 语句,则文件处理将是安全的。
- 使用with语句安全地访问资源文件。
- 当 Python 遇到with块时,会创建一个新的上下文。
- 在块完成运行后,Python 会自动关闭文件资源。
- 上下文的范围类似于with 语句。
示例
以下是使用 with 语句按行读取文本文件的示例 −
# opening the file
with open("TutorialsPoint.txt",'r') as text:
# reading the file by using a for loop
for line in text:
# stripping the newline character from the line
print(line.strip())
输出
这次,文件的行使用 for 循环读取。当我们使用上下文管理器时,文件会在其处理程序退出范围时自动关闭。with 语句确保当函数完成文件处理时,资源得到适当的处理。
以下是以上代码的输出
Welcome to Tutorials Point
This is a new file.
Reading a file line by line using Python
Thank You!