Python:运行类实例时使用cPickle的EOFError

时间:2013-06-16 09:46:02

标签: python python-2.7 pickle

这是导致问题的代码段:

if str(sys.argv[2]) + '.pickle' in os.listdir(os.curdir): #os.path.isfile(str(sys.argv[2]) + '.pickle'):
            path = sys.argv[2] + '.pickle'
            #print path
            instance = cPickle.load(open(str(path)))

这是追溯:

Traceback (most recent call last):                                                                                                               
  File "parent_cls.py", line 92, in <module>                                                                                                
    instance = cPickle.load(open(str(path)))                                                                                                     
EOFError                                                                                                                                         

如果由于file.close()没有执行或其他一些荒谬的错误而继续发生这种情况,请告诉我是否有办法使用子进程访问pickle文件。感谢。

更新:我注意到的另一件事。 filename.pickle检查它是否存在使用if条件实际上是创建一个filename.pickle虽然它不是第一个。

我不想创建它,但要检查它的存在。这是另一个问题吗?

1 个答案:

答案 0 :(得分:2)

以二进制模式打开它:

 open(str(path), 'rb')