Używanie Shelve do zapisywania obiektów w Pythonie
Moduł Shelve implementuje trwałe przechowywanie
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:
|_+_||_+_|