我有一个打开时使用的文件对象file
:
with open("text.txt","rb") as file:
# read some line
file.write("texte") # I know that doesn't work
我只是想知道我是否可以再次打开这个文件,因为Python有关于它的所有信息,但它说这个文件已关闭。 我正在尝试读取文件中的一些行,最后,我将在文件末尾写一行新行,因此我想以追加模式重新打开此文件
>>> with open("test.txt","wb") as fich:
... fich.write("test In ")
...
>>> fich
<closed file 'test.txt', mode ‘wb' at 0x7f3f49a3a4b0>
>>> fich.open
Traceback (most recent call last):
File “<stdin>", line 1, in <module>
我正在调用一个以文件句柄为参数的函数,因此我不能第一次重用open,因为函数中的文件名是未知的
我可以重新打开把手吗?因为我可以使用相同的方法重新打开它:
with open("filename") as anotherfile:
非常简单:重新打开文件:
现在你在评论中提到:
现在事情变得一团糟了。一般规则是,函数不应关闭/重新打开其调用者提供的资源,即:
这是一种糟糕的做法-此处
bar
不应关闭文件,只应使用它-处理文件是foo
(或调用bar
的人)的职责。因此,如果您需要这样一种模式,那么您的设计有问题,您最好先修复您的设计请注意,您可以在不关闭第一个句柄的情况下打开要追加的文件:
但这仍可能打乱来电者的预期
相关问题 更多 >
编程相关推荐