Python文件读取全解析:从open到逐行遍历

半杯拿铁
半杯拿铁
发布时间:2026-10-15 | 4人浏览过
原创

本文详解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逐行读取文本文件的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表