次に、ピクルスファイルの書き込みおよび読み取りの例を示します。 pickleデータをファイルに追加し続ける場合は、ファイルの終わりに達するまで、またはファイルの終わりに達するまで例外が生成されるまで、ファイルから読み込みを続ける必要があります。それが最後の機能です。
import os
import pickle
PICKLE_FILE = 'pickle.dat'
def main():
# append data to the pickle file
add_to_pickle(PICKLE_FILE, 123)
add_to_pickle(PICKLE_FILE, 'Hello')
add_to_pickle(PICKLE_FILE, None)
add_to_pickle(PICKLE_FILE, b'World')
add_to_pickle(PICKLE_FILE, 456.789)
# load & show all stored objects
for item in read_from_pickle(PICKLE_FILE):
print(repr(item))
os.remove(PICKLE_FILE)
def add_to_pickle(path, item):
with open(path, 'ab') as file:
pickle.dump(item, file, pickle.HIGHEST_PROTOCOL)
def read_from_pickle(path):
with open(path, 'rb') as file:
try:
while True:
yield pickle.load(file)
except EOFError:
pass
if __name__ == '__main__':
main()
ファイルにオブジェクトを追加しています。あなたがペリカンをしていないときは、最初の入力のみをキャンセルします。これらのエントリがすべて必要なのですか?そうでない場合、 'open( 'filename'、 'wb') 'に変更してください。 – Andrey
はい、すべてのエントリが必要です。ファイルのサイズには、すべてのファイルが含まれていることが示されています。 –
それから@jsbuenoは彼の答えに間違いありません。 – Andrey