我目前像这样倾倒泡菜:
f = open("objectname.p","w")
pickle.dump(objectname,f)
f.close()
Run Code Online (Sandbox Code Playgroud)
但是,为了在我的文本编辑器中编写简洁的代码段,我想将内容保持在一行。我很想:
pickle.dump(objectname,open("objectname.p","w"))
Run Code Online (Sandbox Code Playgroud)
我的问题是,我仍然需要f.close()文件对象吗?如果是这样,怎么办?(请注意,我没有将变量分配给我打开的文件对象)。
赞成的原因:f.close()存在
否原因的原因:objectname = pickle.load(open("objectname.p","r"))建议按照如下方法来加载pickle对象,如pickle python文档中所述

没有与此匹配的“问题”和“文件”都匹配的相关问题。鉴于我的词汇量有限,我无法搜索解决方案
酸洗与文件的打开和关闭无关。它仅说明文件内容。因此,在您的一线文件中,文件是打开的,但没有关闭。
因此,最好这样做:
with open("objectname.p","w") as f:
pickle.dump(objectname, f)
Run Code Online (Sandbox Code Playgroud)
这与with语句一起使用,可确保在代码块的末尾f.close()自动调用它。您正在使用Python 2.7,并且该Python版本支持该功能。