怎么用 Python 打开文件?——如何逐行读取文本文件

2021-09-14 10:20:27 浏览数 (7655)

在 Python 中,有几种方法可以读取文本文件。在本文中,我将介绍open()函数、read()、readline()、readlines()、close()方法和with关键字。

Python 中的 open() 函数是什么?

如果要在 Python 中读取文本文件,首先必须打开它。

这是 Python 的 open()函数的基本语法:

open("name of file you want opened", "optional mode")

文件名和正确路径

如果文本文件和您当前的文件在同一目录(文件夹)中,那么您只需在open()函数中引用文件名即可。

open("demo.txt")

以下是两个文件位于同一目录中的示例:

如果您的文本文件位于不同的目录中,则您需要引用文本文件的正确路径名。

在此示例中,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"用于附加。我不会详细介绍其他模式,因为我们只会专注于读取文件。

open()Python 中函数的附加参数

该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()

withPython中如何使用关键字关闭文件

确保文件关闭的一种方法是使用with关键字。这被认为是一种很好的做法,因为文件会自动关闭,而您不必手动关闭它。

以下是如何使用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 loop.

在这个例子中,我们可以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()函数接受可选的模式参数。默认模式是读取模式。

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 loop.

with open("demo.txt") as file:
    for item in file:
        print(item)