Poniżej znajduje się przykład tego, jak możesz pisać i czytać plik marynaty. Zwróć uwagę, że jeśli nadal będziesz dołączać dane marynaty do pliku, będziesz musiał kontynuować czytanie z pliku, aż znajdziesz to, czego chcesz, lub zostanie wygenerowany wyjątek po osiągnięciu końca pliku. To właśnie robi ostatnia funkcja.
import os
import pickle
PICKLE_FILE = 'pickle.dat'
def main():
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)
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')