Как создать новую базу данных (с именем xx.db), используя python и sqlite3

63
import sqlite3

conn = sqlite3.connect(r"D:\aaa.db")

Есть ли способ автоматически создать файл db, если он еще не существует, когда я подключаюсь к нему?

спасибо

  • 0
    Вы спрашиваете, как работает SQLite3 при создании новой пустой базы данных?
  • 0
    так что вы хотите проверить, если БД есть, если не создать его?
Теги:

6 ответов

88
Лучший ответ

Код, который вы указываете, создает 'D:\\aaa.db', если он не существует.

10

Если он не создан автоматически, убедитесь, что у вас есть права доступа к каталогу

5

Как уже упоминалось, ваш код должен работать, если у вас есть права на запись для этого пути. Однако важно, чтобы каталог существовал. Если вы вызываете несуществующую папку:

conn = sqlite3.connect(r"D:\Some new non-existing folder\aaa.db")

Это не сработает, у вас будет

sqlite3.OperationalError: unable to open database file. 

То же самое относится к относительным путям:

1) conn = sqlite3.connect(r"aaa.db") 
2) conn = sqlite3.connect(r"Some new folder\aaa.db")

Сначала всегда будет работать, потому что вы работаете в уже существующем каталоге, а второй не будет работать, если вы заранее не создадите папку te.

4

Довольно точно .connect создаст файл, если он не существует.

2
import sqlite3
conn=sqlite3.connect('xx.db')
print "Database created and opened succesfully"
0

.connect должен создать новый файл базы данных "на лету", поскольку существуют подкаталоги, и у вас есть достаточный доступ.

  • 3
    Хотя ответ верен, imho, он не добавляет никакой ценности: все уже сказано

Ещё вопросы

Сообщество Overcoder
Наверх
Меню