Указанный код с django работает потому что django имеет сведения обо всех открытых средствами django коннектах и может их закрыть.
При прямом открытии баз, конечно же, никуда сведения о них не складываются. Чтобы получить подобное своими силами, можно при каждом открытии sqlite-базы класть коннект в list, а в нужный момент перебрать его и закрыть всё:
db_connections = []
db1 = sqlite3.connect('baza1.db')
db_connections.append(db1)
db2 = sqlite3.connect('area51.db')
db_connections.append(db2)
...
for db in db_connections:
db.close()
PS: Некоторое время назад я написал скрипт, который генерирует sqlite-файлы пачками (кэш для САС.Планеты), и там есть специальный класс, который открывает новые файлы и закрывает лишние при достижении некоторого лимита:
https://github.com/shurshur/tms2sqlite/blob/master...