python 中的 read() 和 readline() 有什么区别?

Noo*_*ght 1 python

我现在正在学习 python 中的文件处理。如果我写 read() 方法,它的工作原理与 readline() 方法相同。它们之间一定有区别,我想了解这一点

use*_*432 7

这个问题已经被回答了无数次,并且文档也很好地描述了差异。但这里是这样的:

test.txt如果你有一个像这样的文件 ( ):

first line
second line
third line
Run Code Online (Sandbox Code Playgroud)

然后这段代码:

with open("test.txt", "r") as file:
    line = file.readline()
    print(line)
Run Code Online (Sandbox Code Playgroud)

将产生以下输出:

first line
Run Code Online (Sandbox Code Playgroud)

那是因为readline只读取下一行。

如果您改用此代码:

with open("test.txt", "r") as file:
    content = file.read()
    print(content)
Run Code Online (Sandbox Code Playgroud)

输出:

first line
second line
third line
Run Code Online (Sandbox Code Playgroud)

read()将文件的全部内容读取到字符串中。您还可以给出read()一个可选参数,它指定要从文件中读取的字符数:

with open("test.txt", "r") as file:
    content = file.read(15)
    print(content)
Run Code Online (Sandbox Code Playgroud)

输出:

first line
seco
Run Code Online (Sandbox Code Playgroud)

最后,您没有提到的第三个函数是readlines,它返回行(字符串)列表:

with open("test.txt", "r") as file:
    lines = file.readlines()
    print(lines)
Run Code Online (Sandbox Code Playgroud)

输出:

['first line\n', 'second line\n', 'third line\n']
Run Code Online (Sandbox Code Playgroud)