为什么Python 运行只有第一种读取文件的方法?

Why Python run only first method of reading file?

我正在尝试读取文件方法和 Python 只有 运行 我首先编写的方法。我是初学者。这是什么原因?

第一个例子:

fhandle = open('TestTXT.txt')

for line in fhandle:
    print(line)

print (fhandle.read())

第二个例子:

fhandle = open('TestTXT.txt')

print (fhandle.read())

for line in fhandle:
    print(line)

在您的第一个示例中,正在打印文件的每一行,但是 print() 函数有一个额外的换行符:

fhandle = open('TestTXT.txt')

for line in fhandle:
    print(line)   # extra line feed for each line

print(fhandle.read())   # Does nothing!

在第二个示例中,您将一次性打印文件的内容,加上来自 print() 函数的额外换行符:

fhandle = open('TestTXT.txt')

print(fhandle.read())  # everything printed here

for line in fhandle:   # does nothing
    print(line)

文件对象存储当前的偏移量,它会随着您的阅读而向前移动。一旦读到最后,您需要重新打开文件,或者使用 seek:

将偏移量移动到开头
print(fhandle.read())  
fhandle.seek(0)
for line in fhandle:  
    print(line)