EOFError: Закончились входные данные pickle.load, файл НЕ пуст - PullRequest
0 голосов
/ 13 марта 2020

Привет У меня есть следующая проблема:

У меня есть некоторые данные, которые я засолил. Данные представляют собой словарь, и для каждого ключа существует массив 3d- numpy. Размер данных составляет около 3 ГБ, и я могу прочитать в первой строке, показывая

f = open("data.txt","rb")
print(f.readline())
f.close()

> b'\x80\x03}q\x00(G@\x1a\xe1G\xae\x14z\xe1G@\x1a\xcc\xcc\xcc\xcc\xcc\xcd\x86q\x01}q\x02(X\x04\x00\x00\x00GABAq\x03cnumpy.core.multiarray\n'

Однако, если я попытаюсь загрузить протравленные данные, используя

f = open("data.txt","rb")
data = pickle.load(f)
f.close()

или

f = open("data.txt","rb")
pickler = pickle.Unpickler(f)
final   = pickler.load()

Я получаю только сообщение об ошибке "EOFError: Out out of input".

Несколько дополнительных сведений: я сам собрал данные, используя те же P C и Python (3.7 .3) / Pickle версия

Я искал, и у нескольких человек возникла эта проблема, и решение состояло в том, что их файл был пуст. Я не нашел ничего полезного.

Заранее спасибо

PS: я перебрал данные, используя:

f = open("data.txt","wb")
pickle.dump(data,f) 
f.close()

Я часто использовал этот код с небольшими данными. устанавливает и никогда не было проблем

...