Używanie Shelve do zapisywania obiektów w Pythonie

Moduł Shelve implementuje trwałe przechowywanie

Właściciel firmy pracujący przy laptopie w sklepie odzieżowym

Obrazy bohaterów / Obrazy bohaterów / Obrazy Getty





Shelve to potężny moduł Pythona do utrwalania obiektów. Kiedy odkładasz obiekt na półkę, musisz przypisać klucz, dzięki któremu znana jest wartość obiektu. W ten sposób plik na półce staje się bazą danych przechowywanych wartości, z których każdy jest dostępny w dowolnym momencie.

Przykładowy kod dla Shelve w Pythonie

Aby odłożyć obiekt na półkę, najpierw zaimportuj moduł, a następnie przypisz wartość obiektu w następujący sposób:



|_+_||_+_|

Jeśli chcesz na przykład prowadzić bazę danych o akcjach, możesz dostosować następujący kod:

|_+_||_+_|

Plik „stock values.db” jest już otwarty, nie trzeba go otwierać ponownie. Zamiast tego możesz otworzyć wiele baz danych jednocześnie, pisać do każdej z nich do woli i wyjść Pyton zamknąć je po zakończeniu programu. Możesz na przykład zachować osobną bazę danych nazw dla każdego symbolu, dołączając następujące elementy do poprzedniego kodu:



|_+_||_+_|

Należy zauważyć, że każda zmiana nazwy lub przyrostka pliku bazy danych stanowi inny plik, a zatem inną bazę danych.

Wynikiem jest drugi plik bazy danych zawierający podane wartości. W przeciwieństwie do większości plików zapisanych w formatach samozwańczych, bazy danych na półce są zapisane w formie binarnej.

Po zapisaniu danych do pliku można je w każdej chwili przywołać. Jeśli chcesz przywrócić dane w późniejszej sesji, ponownie otwórz plik. Jeśli jest to ta sama sesja, po prostu przywołaj wartość; odłożyć na półkępliki bazy danychsą otwierane w trybie do odczytu i zapisu. Poniżej znajduje się podstawowa składnia do osiągnięcia tego:

|_+_||_+_|

Tak więc próbka z poprzedniego przykładu brzmiałaby:



|_+_||_+_|

Rozważania z półką

Ważne jest, aby pamiętać, że baza danych pozostaje otwarta do momentu jej zamknięcia (lub do zakończenia programu). Dlatego, jeśli piszesz program dowolnej wielkości, chcesz zamknąć bazę danych po pracy z nią. W przeciwnym razie cała baza danych (nie tylko żądana wartość) znajduje się w pamięci i zużywa zasoby obliczeniowe .

Aby zamknąć plik na półce, użyj następującej składni:



|_+_||_+_|

Gdyby wszystkie powyższe przykłady kodu zostały włączone do jednego programu, mielibyśmy w tym momencie otwarte dwa pliki bazy danych, które zajmowałyby pamięć. Tak więc, po przeczytaniu nazw akcji w poprzednim przykładzie, możesz zamknąć każdą bazę danych po kolei w następujący sposób:

|_+_||_+_|