gpt4 book ai didi

python - 在 python 中与 open() 一起使用后,打开的文件如何无法通过eek(0)倒回

转载 作者:行者123 更新时间:2023-11-30 22:28:02 29 4
gpt4 key购买 nike

当我尝试在 python 中逐行打印文件内容时,如果文件是由 < 打开的,则无法通过 f.seek(0) 倒回打开的文件来打印内容强>打开(“文件名”)作为f: 但是,如果我使用 open("file_name") as f: ,我就可以做到这一点然后f.seek(0)

以下是我的代码

with open("130.txt", "r") as f:             #f is a FILE object
print (f.read()) #so f has method: read(), and f.read() will contain the newline each time

f.seek(0) #This will Error!
with open("130.txt", "r") as f: #Have to open it again, and I'm aware the indentation should change
for line in f:
print (line, end="")

f = open("130.txt", "r")
f.seek(0)
for line in f:
print(line, end="")

f.seek(0) #This time OK!
for line in f:
print(line, end="")

我是Python初学者,有人能告诉我为什么吗?

最佳答案

第一个 f.seek(0) 会抛出错误,因为

with open("130.txt", "r") as f:
print (f.read())

将在 block 末尾关闭文件(一旦文件被打印出来)

您需要执行以下操作:

with open("130.txt", "r") as f:
print (f.read())

# in with block
f.seek(0)

关于python - 在 python 中与 open() 一起使用后,打开的文件如何无法通过eek(0)倒回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46735755/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com