【发布时间】:2012-12-18 19:16:32
【问题描述】:
有什么方法可以检查pickle 是否创建了文件?我可以捕获pickle.load 抛出的异常,但没有特定的“不是泡菜文件”异常。
【问题讨论】:
-
检查醋和莳萝的痕迹
-
您是担心刚刚使用
pickle.dump时文件是否已创建,还是担心使用pickle.load时文件是否存在?无论哪种情况,当您打开文件句柄以进行输出或输入时都会发生错误,而不是在实际的pickle行中。 -
我关心的不是文件是否存在,而是存在的文件是否是
pickle创建的。 -
感谢您提出这个问题。它启发了我最终看看泡菜文件实际上是什么。有几种协议(pickle 文件格式)——请参阅 PEP 307 (python.org/dev/peps/pep-0307)——第一个是 ASCII,随后是二进制,并进行了增量改进。协议 3 仅适用于 Python 3。据我所知,没有一个有 isfileapicklefile 类型检查,但有几个有用的 Unpickling 异常(正如@Ned-batchelder 在他的回答中所宣传的那样):docs.python.org/2/library/pickle.html#pickle.UnpicklingError
-
听起来你在泡菜!