.txt形式を使用したpickleファイルがあります。 python 2.7でこのピクルスファイルをロードしたい。サイズは438.5 MBです。これがデータのロード方法です。
def readpickle(path="C:/Python27/Lib/site-packages/xy/"):
with open(path+"filenamereal2.txt","rb") as f:
model = pickle.load(f)
return model
そして私はこのエラーを受け取ります
itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/")
Traceback (most recent call last):
File "<ipython-input-33-265e46f74915>", line 1, in <module>
itemmodelreal=readpickle(path="C:/Users/Lab Komputasi/Documents/estu/")
File "<ipython-input-31-fbd3e8b9e043>", line 3, in readpickle
model = pickle.load(f)
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 1384, in load
return Unpickler(file).load()
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 864, in load
dispatch[key](self)
File "C:\Users\Lab Komputasi\Anaconda2\lib\pickle.py", line 886, in load_eof
raise EOFError
EOFError
これは私がピクルスを書くために使用するコードです:
with open("filenamereal3.txt", "wb") as f:
pickle.dump(result, f)
f.close()
読み込みバイナリ( 'rb')を使用して読み込み、書き込みバイナリ( 'wb')を書き込みましたが、それでもエラーが発生します。それがまだエラーである理由が何かわかりますか?このエラーを解決するにはどうすればよいですか?
ご協力ありがとうございました....
データをロードするために、データを書き込む( "wb")の代わりにデータ( "rb")を読み取りたいと思いませんか?
データの読み込みは次のようになります。
with open("C:/Users/Lab Komputasi/Documents/estu/filenamereal1.txt", "rb") as f:
data = pickle.load(f)
また、with/as句を使用しているため、f.close()の使用は不要です。
最高のプロトコルでダンプされた大きなファイルをロードしているときに同じエラーが発生しました。
これはpickleライブラリのバグのようです。代わりにcPickleを使用して解決しました。
import cPickle as pickle
Pickleファイルが空でないことを確認してください。初期化されていない変数をpickle化した場合。