Я экспериментирую с модулем базы данных ZODB в Python 3.6.В моем эксперименте я создаю TreeSet()
и заполняю его данными.Затем я фиксирую транзакцию (которая сохраняет изменения на диске) и закрываю базу данных.
from ZODB.FileStorage import FileStorage
from ZODB import DB
from persistent import Persistent
from BTrees.OOBTree import TreeSet
import transaction
if __name__ == '__main__':
# 1. Create ZODB database
# ------------------------
storage = FileStorage("C:/database_test/mydb.db")
db = DB(storage)
conn = db.open()
root = conn.root()
root.files = TreeSet()
# 2. Fill the TreeSet
# --------------------
...
# 3. Save and close
# ------------------
transaction.commit()
conn.close()
db.close() # <- is this even necessary?
Я смотрю файлы, оставшиеся на моем жестком диске.Как видите, там осталось три временных файла - даже после того, как я закрыл базу данных.
![enter image description here](https://i.stack.imgur.com/9qRZL.png)
Я что-то закрыл ( база данных , соединение , хранилище , транзакция , ...) не правильно?
Примечание:
Я не знаю, важно ли это, но моя система выглядит следующим образом:
- Windows 10, 64-битная
- Python 3.6.3
- ZODB 5.4.0 (последняя версия от 18 мая 2018 года)