EOFError: Ran out of input 一种可能错误原因

今天在做大作业的时候,在进行pkl文件读写的时候遇到了这个报错。

明明已经写入pkl文件了,但想再load输出pkl文件中的内容的时候,突然就报错。

但最后排查了一下,原来是忘记加close()了,未关闭 fpkl 会导致后续再用 f 读取时无法获取pkl文件中的数据,上代码:

import os
import shutil
import pickle
import random


name_map = {}

path_pkl = "./idx.pkl"
path_rgb = "./destppm"
path_depth = "./destpgm"

rgb_files = os.listdir(path_rgb)
depth_files = os.listdir(path_depth)

rgb_files.sort()

for rgb_file,depth_file in zip(rgb_files,depth_files):
    name_map[rgb_file] = depth_file

fpkl = open(path_pkl,'wb')
pickle.dump(name_map,fpkl)
fpkl.close()  #未关闭fpkl会导致后续用f读取时无法获取pkl文件中的数据

f = open(path_pkl, 'rb')
data = pickle.load(f)

print(data)

 

你可能感兴趣的:(基础编程语法,python)