Python文件读取全解析:从open到逐行遍历
本文详解Python中读取文本文件的多种方法。涵盖open函数的路径与模式参数、read读取全文、readline逐行读取及readlines返回列表,并演示如何使用with语句自动管理文件关闭及for循环高效遍历文件内容。

在Python中,读取文本文件有多种实现方式。
本文将逐一介绍open()函数、read()方法、readline()方法、readlines()方法、close()方法以及with关键字的具体用法。
Python中的open()函数解析
若要在Python中读取文本文件,首要步骤是打开该文件。
以下是Python中open()函数的基本语法结构:
open("name of file you want opened", "optional mode")
文件名与正确路径
open("demo.txt")
若文本文件与当前脚本位于同一目录(即“文件夹”)下,只需在open()函数中直接引用文件名即可。
以下示例展示了两个文件处于同一目录时的调用方式:

若文本文件位于其他目录,则必须引用该文件的完整路径名。
在此示例中,random-text文件存放于与main.py不同的文件夹内:

为了在main.py中访问该文件,必须在文件名前包含文件夹名称。
open("text-files/random-text.txt")
若未提供正确的文件路径,系统将抛出如下错误信息:
open("random-text.txt")

准确追踪当前工作目录至关重要,这有助于引用正确的路径名。
open()中的可选模式参数
处理文件时存在不同的操作模式,默认模式为读取模式。
字母r代表读取模式。
open("demo.txt", mode="r")
你也可以省略mode=参数,直接传入"r"。
open("demo.txt", "r")
此外还有用于写入的"w"或用于追加的"a"等其他模式。此处不展开介绍其他模式,因为本文仅聚焦于文件读取。
如需其他模式的完整列表,请参阅官方文档。
Python中open()函数的其他参数
open()函数还支持接收其他可选参数:
- buffering
- encoding
- errors
- newline
- closefd
- opener
查阅文档以了解更多参数详情。
Python中的readable()方法
若需检查文件是否具备读取权限,可使用readable()方法,该方法将返回True或False。
在以下示例中,由于处于读取模式,结果将返回True:
file = open("demo.txt")
print(file.readable())

若将示例更改为"w"(写入)模式,则readable()方法将返回False:
file = open("demo.txt", "w")
print(file.readable())

Python中的read()方法
read()方法会将文件的全部内容作为一个字符串读取。若文本文件内容较少,这是一种高效的方法。
在本例中,我使用read()方法从demo.txt文件中打印出名称列表:
file = open("demo.txt")
print(file.read())

此方法可接收一个名为size的可选参数。通过指定该参数,仅读取文件的一部分内容。
若修改前述示例,通过添加数字4作为read()的参数,则仅打印出前四个字符(即第一个单词)。
file = open("demo.txt")
print(file.read(4))

若省略size参数,或提供的数字为负数,则将读取整个文件。
Python中的close()方法
完成文件读取后,务必关闭文件。若忘记关闭文件,可能会导致资源占用或其他问题。
以下是关闭demo.txt文件的示例:
file = open("demo.txt")
print(file.read())
file.close()
如何在Python中使用with关键字关闭文件
确保文件被正确关闭的一种推荐做法是使用with关键字。这被视为最佳实践,因为文件会自动关闭,无需手动调用close()。
以下是使用with关键字重写后的示例:
with open("demo.txt") as file:
print(file.read())
Python中的readline()方法
该方法将从文件中读取一行并返回。
在此示例中,我们有一个包含这两句话的文本文件:
This is the first line
This is the second line
若使用readline()方法,它仅会打印文件的第一句话。
with open("demo.txt") as file:
print(file.readline())

此方法同样接受可选的size参数。我们可以修改示例,加上数字7来仅读取并打印出前七个字符(即"This is"):
with open("demo.txt") as file:
print(file.readline(7))

Python中的readlines()方法
该方法将读取并返回文件中所有行的列表。
在此示例中,我们将使用readlines()方法将杂货项目打印为列表。
with open("demo.txt") as file:
print(file.readlines())

如何使用for循环从Python中的文件中读取行
除了上述不同读取方法外,使用for循环是另一种替代方案。
在此示例中,我们可以通过循环对象打印出demo.txt文件中的所有项目。
with open("demo.txt") as file:
for item in file:
print(item)

总结
若要在Python中读取文本文件,首先必须打开它。
open("name of file you want opened", "optional mode")
若文本文件与当前文件位于同一目录(“文件夹”)中,只需在open()函数中引用文件名即可。
若文本文件位于不同的目录中,则需引用文本文件的正确路径名。
open()函数接受可选的mode(模式)参数,默认模式为读取模式。
open("demo.txt", "r")
若需检查文件是否可以读取,可使用readable()方法,这将返回True或False。
file.readable()
read()方法会将文件的所有内容作为一个字符串读取。
file.read()
完成读取文件后,关闭它很重要。若忘记关闭文件,可能会导致问题。
file.close()
确保文件关闭的一种方法是使用with关键字。
with open("demo.txt") as file:
print(file.read())
readline()方法将从文件中读取一行并返回。
file.readline()
readlines()方法将读取并返回文件中所有行的列表。
file.readlines()
这些不同读取方法的替代方法是使用for循环。
with open("demo.txt") as file:
for item in file:
print(item)
以上就是Python如何实现逐行读取文本文件的详细内容,更多关于Python逐行读取文本文件的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









