为什么 "with open(file.txt)" 语句中的第二行 return 是 python 中的空字符串?

Why does the second line in "with open(file.txt)" statement return an empty string in python?

我正在学习如何在 python 中打开文本文件,我正在尝试以下代码:

from pathlib import Path

file_path = Path(r'path\to\file.txt')

with open(file_path) as file_object:
    for line in file_object:
        print(line)
    contents = file_object.read()


print(contents)

假设 file.txt 包含三个单词,每个单词单独占一行。 for 循环正常执行并打印三行,但是一个空字符串被分配给变量“contents”,因此最后的 print 语句没有显示任何内容。

我猜当执行“with”后的第一条语句时文件被关闭了?

感谢您的帮助!

for循环后,“当前位置”在文件末尾。 .read() 调用读取文件的其余部分,这没什么(因为它已经在末尾)。该文件仍处于打开状态,所以这不是错误,只是没有更多内容可读,因为它已经全部被读取了。

如果要再次读取文件,需要调用.seek(0)将return“当前位置”回到文件开头。