Как проверить, существует ли файл базы данных или нет? И, если он существует, как проверить, имеет ли он уже определенную таблицу или нет?sqlite3 в Python
ответ
Чтобы узнать, существует ли база данных, вы можете sqlite3.connect
файлу, который, по вашему мнению, содержит базу данных, и попробуйте запустить на нем запрос. Если это не базы данных, вы получите сообщение об ошибке:
>>> c.execute("SELECT * FROM tbl")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.DatabaseError: file is encrypted or is not a database
sqlite3.connect
будет создать базу данных, если она не существует; как указывает @johnp в комментариях, os.path.exists
расскажет вам, существует ли файл.
Для проверки существующих таблиц вы найдете query against sqlite_master. Например:
>>> def foo(name):
... for row in c.execute("SELECT name FROM sqlite_master WHERE type='table'"):
... if row == (name,):
... return True
... return False
...
>>> foo("tz_data")
True
>>> foo("asdf")
False
hmm ... вызывает вызов sqlite3.connect(), автоматически создавая базу данных? – john2x
@ john2x - да, делает. –
Если вы хотите увидеть, если файл существует, использование os.path.exists(): импорт os.path os.path.exists ('dbname.db') выполнять эту проверку, прежде чем sqlite3.connect (), чтобы избежать создания базы данных, если она не существует. –
- 1. Python: sqlite3
- 2. Разъем sqlite3 в python
- 3. Использование SQLite3 в Python
- 4. Python - OperationalError в SQLite3
- 5. Python datetimes в sqlite3
- 6. Пересечение в sqlite3 в Python
- 7. SQLite3 Python 2.7 sqlite3.OperationalError ошибка синтаксиса
- 8. Python sqlite3: запустить другую версию sqlite3
- 9. Сохранение дат python в sqlite3
- 10. Python: Создание таблицы в Sqlite3
- 11. Запрос в SQLite3 с python
- 12. JSON и SQLite3 в Python
- 13. Populating sqlite3 в цикле Python
- 14. Python 2.7 sqlite3 logging
- 15. Использование Python с sqlite3
- 16. Python sqlite3 value lookup
- 17. Возможные Python Sqlite3 Bug
- 18. Python SQLite3 не обновляется
- 19. Сделки с Python sqlite3
- 20. sqlite3 Python удалить столбец
- 21. python sqlite3 Список
- 22. Python Sqlite3 - данные перезаписываются
- 23. python sqlite3 insert command
- 24. Python sqlite3 NoneType error
- 25. Python sqlite3 строка форматирования
- 26. Python sqlite3 искажая параметр
- 27. python с sqlite3
- 28. python sqlite3 unrecognized token
- 29. Использование python с sqlite3
- 30. Python SQLite3 Insert
См http://stackoverflow.com/questions/211501/using-sqlite-in-a-python-program, http://stackoverflow.com/questions/1449495/can-i- База данных test-for-the-of-a-table-in-a-sqlite –