Python Open File - 如何逐行读取文本文件

478 阅读5分钟

在 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" ,用于追加。 我不打算详细介绍其他模式,因为我们只是要专注于阅读文件。

对于其他模式的完整列表,请阅读文档

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

open() 函数可以接受这些可选参数:

  • 缓冲
  • 编码
  • 错误
  • 换行
  • closeefd
  • 操作者

要了解这些可选参数的更多信息,请通读文档

什么是 Python 中的 readable() 方法?

如果你想检查一个文件是否可以被读取,那么你可以使用readable() 方法。这将返回一个TrueFalse

这个例子将返回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()

如何使用with 关键字来关闭 Python 中的文件

确保你的文件被关闭的一种方法是使用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())

这个方法还接收了可选的大小参数。我们可以修改这个例子,加入数字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())

如何在Python中使用for循环从文件中读取行数?

除了这些不同的读取方法,还有一种方法是使用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() 方法。这将返回一个TrueFalse :

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)

我希望你喜欢这篇文章,祝你在Python的道路上好运。