在 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() 方法。这将返回一个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()
如何使用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() 方法。这将返回一个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)
我希望你喜欢这篇文章,祝你在Python的道路上好运。