Selam arkadaşlar...
shelve kullanarak basit bir veri tabanı sistemi geliştirmeye çalışıyorum ve projede şöyle bir sorunla karşılaştım; shelve ile hazırladığım veritabanını okutuyorum ve okuttuğum verileri "copy" kütüphanesi sayesinde kopyalamaya çalışıyorum fakat olmuyor...
örnek:
Kod:
>>> import shelve,copy
>>> db=shelve.open("deneme.db")
>>> db["Adana"]=["seyhan","yüreğir","karataş"]
>>> vt=copy.copy(db)
>>> db.close()
>>> vt
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
vt
File "C:\Python25\lib\UserDict.py", line 167, in __repr__
return repr(dict(self.iteritems()))
File "C:\Python25\lib\UserDict.py", line 105, in iteritems
for k in self:
File "C:\Python25\lib\UserDict.py", line 92, in __iter__
for k in self.keys():
File "C:\Python25\lib\shelve.py", line 92, in keys
return self.dict.keys()
File "C:\Python25\lib\bsddb\__init__.py", line 251, in keys
self._checkOpen()
File "C:\Python25\lib\bsddb\__init__.py", line 212, in _checkOpen
raise error, "BSDDB object has already been closed"
DBError: BSDDB object has already been closed
>>>
bildiğiniz gibi en güvenli yol açılan dosyanın otomatik olarak kapatılmasını beklemeden sistemli bir şekilde kapatmak, yukarıdaki hataya nasıl bir çözüm bulabilirim?..
Teşekkürler...