Python读取多个pickle字典

Python读取多个pickle字典,python,dictionary,input,io,pickle,Python,Dictionary,Input,Io,Pickle,我有261个pickle dictionary对象(task_0.pkl,task_1.pkl,…) 我想看看。我试过了 c=[] for i in range(261): with open('result_20140213/task_%i.pkl' %i , 'rb') as handle: c.append(pickle.load(handle)) 它给 -------------------------------------------------------

我有261个pickle dictionary对象(
task_0.pkl,task_1.pkl,…

我想看看。我试过了

c=[]
for i in range(261):
    with open('result_20140213/task_%i.pkl' %i , 'rb') as handle:
        c.append(pickle.load(handle))
它给

---------------------------------------------------------------------------
EOFError                                  Traceback (most recent call last)
<ipython-input-26-a5aa784bbbb0> in <module>()
      2 for i in range(261):
      3     with open('result_20140213/task_%i.pkl' %i , 'rb') as handle:
----> 4         c.append(pickle.load(handle))

EOFError: Ran out of input
它还提供

---------------------------------------------------------------------------
EOFError                                  Traceback (most recent call last)
<ipython-input-28-660cce2aef10> in <module>()
      2 for i in range(261):
      3     with open('result_20140213/task_%i.pkl' %i , 'rb') as handle:
----> 4         pickle.load(handle)

EOFError: Ran out of input
---------------------------------------------------------------------------
EOFError回溯(最近一次呼叫最后一次)
在()
范围(261)内的i为2:
3以open('result_20140213/task_%i.pkl'%i,'rb')作为句柄:
---->4.酸洗负荷(手柄)
EOFError:输入不足
这里似乎不能用开着的

我怎么能读这些腌制字典呢?

范围(261)产生0,1,…,260

你有任务吗


也许你的意思是范围(1262)?

检查文件是否为空。 import os import io for i in range(261): with io.TextIOWrapper(open('result_20140213/task_%i.pkl' %i, 'rb')) as handle: if os.stat('result_20140213/task_%i.pkl' %i).st_size == 0: pickle.load(handle) 导入操作系统 输入io 对于范围(261)内的i: 以io.TextIOWrapper(open('result_20140213/task_u%i.pkl'%i,'rb')作为句柄: 如果os.stat('result_20140213/task_%i.pkl'%i.).st_size==0: pickle.load(手柄)
`我知道为什么。。。。我把
'wb'

for i in range(261):
    with open('result_20140213/task_%i.pkl' %i , 'rb') as handle:
        pickle.load(handle)

因此,它将首先创建空文件。。。。。谢谢大家。

不确定这是否是问题所在,但在问题的第一行中,您指出任务ID从
1
开始,而循环索引从
0
开始。问题似乎不在于您的代码,而在于文件的内容。您可以尝试在每次循环迭代中打印
i
,以找出哪个文件是有问题的文件
for i in range(261):
    with open('result_20140213/task_%i.pkl' %i , 'rb') as handle:
        pickle.load(handle)