无法在Python中打开NPY文件

无法在Python中打开NPY文件,python,numpy,pickle,spyder,Python,Numpy,Pickle,Spyder,我为一个机器学习项目收集了数据,并将数据保存为.npy文件,其格式为 [[multidimarray][multidimarray][multidimarray][multidimarray]] .npy文件的大小各不相同。我使用的是Python3.7.6 64位。我遇到的问题如下: array = pickle.load(fp, **pickle_kwargs) EOFError: Ran out of input 我尝试加载带有的.npy文件,并使用np.load(os.path.jo

我为一个机器学习项目收集了数据,并将数据保存为.npy文件,其格式为

[[multidimarray][multidimarray][multidimarray][multidimarray]]
.npy文件的大小各不相同。我使用的是Python3.7.6 64位。我遇到的问题如下:

array = pickle.load(fp, **pickle_kwargs)

EOFError: Ran out of input
我尝试加载带有
的.npy文件,并使用np.load(os.path.join(path,file),allow_pickle=True)作为数据:
但它总是给我EOR。我不认为该文件已损坏,因为我有一个约800MB的文件,我可以加载该文件,但不能加载一个约2.5GB的文件

如果在收集数据时有帮助,我将执行
np.在循环中多次保存(文件名、培训数据)
并在
len(培训数据)%1000==0时覆盖现有文件

有没有想过为什么我不能加载它?谢谢

编辑:下面是我用来生成.npy文件的循环:

file_name = SAVING_PATH + str(int(time.time())) + '.npy'

if os.path.isfile(file_name):
    print('File exists, loading previous data!')
    training_data = list(np.load(file_name))
else:
    print('File does not exist, starting fresh!')
    training_data = []

while True:
    #screen is a npy array
    screen = getscreen()

    arr1,arr2,arr3,arr4 = getdata(screen)

    cv2.imshow('window',screen)

    training_data.append([arr1,arr2,arr3,arr4])

    if len(training_data) % 500 == 0:
        print(len(training_data))
        np.save(file_name, training_data)

    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        print(len(training_data))
        np.save(file_name, training_data)
        break

您是否尝试过使用np.load(os.path.join(path,file))
?您可以发布保存文件的循环代码吗?@Ehsan如果我没有包含allow\u pickle=True,python将不允许我加载该文件,因为ValueError:allow\u pickle=False时无法加载对象数组。我已经在Postal中添加了循环,所以我很确定我有足够的内存在中加载文件。您是否尝试过使用np.load(os.path.join(path,file))
?您可以发布保存文件的循环代码吗?@Ehsan如果我没有包含allow\u pickle=True,python将不允许我加载该文件,因为ValueError:allow\u pickle=False时无法加载对象数组。我已经在Postal中添加了循环,所以我很确定我有足够的内存来加载文件