Как создать новую базу данных (с именем xx.db), используя python и sqlite3 - PullRequest
71 голосов
/ 03 февраля 2010
import sqlite3

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

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

спасибо

Ответы [ 6 ]

96 голосов
/ 03 февраля 2010

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

9 голосов
/ 03 февраля 2010

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

6 голосов
/ 12 августа 2016

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

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")

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

4 голосов
/ 03 февраля 2010

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

2 голосов
/ 24 июня 2014
import sqlite3
conn=sqlite3.connect('xx.db')
print "Database created and opened succesfully"
0 голосов
/ 11 сентября 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...