Как я могу использовать полочные предметы?
К счастью, у нас есть простой ответ на этот вопрос: объект полки очень похож на словари в Python, но с той лишь разницей, что полка хранит свои данные в файле на диске, а не в памяти.
Каковы преимущества?
Некоторые из них:
- Во-первых, у вас нет ограничений на объем доступной оперативной памяти.
- Во-вторых, у вас есть удобство доступа с помощью ключа, как в словаре.
- И в-третьих, вы можете читать или записывать фрагменты данных в большие файлы, не читая или не записывая весь файл.
Эти аспекты очень полезны в приложениях, которые выполняют множество обращений к большим файлам, поскольку экономия времени может быть впечатляющей.
Как я могу использовать полочные предметы?
Использовать объект полки в Python очень просто, нам просто нужно выполнить следующие шаги, когда они нам понадобятся:
1. Импорт модуля полки
Это простой шаг, и мы можем сделать это с помощью всего одной строчки кода:
import shelve
2. Открытие полки.
Эта операция позволяет нам открыть или создать (в случае, если файл не существует) объект или файл полки, мы можем выполнить эту задачу с помощью функции shelve.open, отправив имя файла в качестве аргумента.
repos = shelve.open("github_repos")
3. Добавление записей данных
Теперь нам нужно добавить данные в созданный ранее объект полки (объект репозитория). Однако у нас есть ограничение на этом шаге, в отличие от словарей, ключ полки не может быть любым типом данных, в этом случае мы должны использовать строки в качестве ключей.
repos['SimpleBuy'] = ('hgodinez89', 'Online store', '1.0') repos['login-app'] = ('hgodinez89', 'Login', '1.0')
4. Получение записей данных
Чтобы получить ранее созданную запись данных, нам нужно только получить к ней доступ с помощью определенного ключа.
repos['login-app'] Output: ('hgodinez89', 'Login', '1.0')
5. Обновление записей данных
Когда нам нужно обновить ранее созданную запись данных, нам просто нужно получить к ней доступ с помощью определенного ключа.
repos['login-app'] = ('hgodinez89', 'Login with Firebase', '1.0')
6. Закрытие полки объекта
Наконец, мы не должны забывать закрыть объект полки, над которым мы работаем (объект repos), причина в том, что иногда требуется закрытие объектов полки, чтобы внесенные вами изменения были записаны обратно в диск.
repos.close()
Здесь вы можете найти суть всего написанного ранее кода.
Следует иметь в виду, что объекты полок позволяют выполнять базовые словарные операции, назначение клавиш или поиск, del, in и метод keys.
Пока объекты полки кажутся очень крутыми, но у нас есть ограничение, которое может показаться не очень хорошим: объекты полки не подходят для многопользовательских баз данных, потому что они не обеспечивают контроль одновременного доступа .
Наконец, я считаю, что объекты полок могут быть полезны людям, чья работа связана с хранением или доступом к фрагментам данных в больших файлах, с преимуществами чтения или записи фрагментов данных без файла целиком. В то же время улучшается выполнение программ, потому что для остальной части программы доступно больше памяти.
Не стесняйтесь комментировать в этой статье любые детали, которые не были упомянуты.
Большое спасибо, что попали сюда. 😊 👈
Эта статья вдохновлена книгой 📖 The Quick Python Book 📖, которую я рекомендую вам широко, если вы хотите знать базовые концепции языка и в то же время узнать о других сложных темах.