View Single Post
Eski 05/09/2007, 22:45   #1 (permalink)
osx
Üye
 
Üyelik Tarihi: 02/2007
Mesaj: 31
Varsayılan Veri kopyalama sorunu (shelve,copy kütüphaneleri)

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...
osx hatta değil   Alıntı Yaparak Yanıtla