Изменение данных файла с помощью модуля shelve на Python

Изменим данный пример «базы данных» так, что объекты будут храниться в файле. Программа должна иметь возможность изменять объекты, хранящиеся в файле.

Модуль shelve позволяет сохранять объекты по ключу. Т.е. чтобы работать с объектом, сохраненным в файле, необходимо указать его ключ. Нет необходимости просматривать содержимое всего файла.

class Subject:
	def __init__(self, s, i, q = 1):
		self.id = i
		self.name = s
		self.qty = q
 
import shelve
f = shelve.open("learning")
l = len(f)
 
print ("%5s %12s %7s" % ("ID", "Предмет", "Кол-во"))
for i in f:
	print("%5s %12s %7s" % (f[i].id, f[i].name, f[i].qty))
 
print("Вводите названия предметов")
record = input()
while record != "н":
	if record in f:
		f[record] = Subject(f[record].name,f[record].id,f[record].qty + 1)
	else:
		a = Subject(record,l+1)
		l += 1
		f[record] = a
	record = input()
 
for i in f:
	print("%5s %12s %7s" % (f[i].id, f[i].name, f[i].qty))
 
f.close()

Пример работы программы:

sv@sv-desktop ~/Документы $ python3 mouse2.py 
   ID      Предмет  Кол-во
Вводите названия предметов
химия
биология
биология
н
    2     биология       2
    1        химия       1
sv@sv-desktop ~/Документы $ python3 mouse2.py 
   ID      Предмет  Кол-во
    2     биология       2
    1        химия       1
Вводите названия предметов
черчение
алгебра
биология
н
    2     биология       3
    3     черчение       1
    4      алгебра       1
    1        химия       1
sv@sv-desktop ~/Документы $ python3 mouse2.py 
   ID      Предмет  Кол-во
    2     биология       3
    3     черчение       1
    4      алгебра       1
    1        химия       1
Вводите названия предметов

  Импорт CSV в Python: обработка табличных данных с легкостью
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x