コード:
import pickle
test = 3
>>> with open('test', 'wb') as file:
... pickle.dumps(test, file)
エラーが予期せずに報告されました。
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: an integer is required (got type _io.BufferedWriter)
何が起きてる?
wrong関数を使用しています。ここにドキュメントがあります:
dumps(obj, protocol=None, *, fix_imports=True)
Return
bytes
オブジェクトとしてのオブジェクトのピクル表示。
dumps
は、渡されたオブジェクトをbytes
に変換して返します。取得するエラーは、.dump
が酸洗プロトコルであると想定しているものにファイル引数を渡したときに発生します。
実際にファイルにダンプするpickle.dump
を使用する必要があります。
dump(obj, file, protocol=None, *, fix_imports=True)
書き込み開いているファイルオブジェクト
obj
へのfile
のピクル表示。
with open('test', 'wb') as file:
pickle.dump(test, file)