web-dev-qa-db-ja.com

pickle.load()WindowsでEOFErrorを発生させる

これがコードです

with open(pickle_f, 'r') as fhand:
    obj = pickle.load(fhand)

これはLinuxシステムでは正常に機能しますが、Windowsでは機能しません。その表示EOFError。 Windowsで動作させるには、rbモードを使用する必要があります。これはLinuxでは動作しません。

なぜこれが起こっているのですか、そしてそれを修正する方法は?

14
Surya

ピクルスの読み取りと書き込みを行うときは、常にbモードを使用してください(書き込みの場合はopen(f, 'wb')、読み取りの場合はopen(f, 'rb'))。すでに持っているファイルを「修正」するには、dos2unixを使用して改行を変換します。

25
shx2