如何使用python和sqlite3创建新数据库

71 投票
6 回答
56160 浏览
提问于 2025-04-15 18:49
import sqlite3

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

有没有办法在我连接数据库的时候,如果数据库文件还不存在,就自动创建一个?

6 个回答

6

正如之前提到的,如果你有权限在这个路径下写东西,你的代码应该可以正常运行。不过,有一点很重要,那就是目录必须存在。如果你尝试访问一个不存在的文件夹:

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

第一个路径总是能正常工作,因为你是在一个已经存在的目录下操作,而第二个路径如果你没有提前创建那个文件夹就会失败。

9

如果没有自动创建这个文件夹,先检查一下你有没有正确的权限来访问这个文件夹。

96

你给的代码确实会在没有这个文件的情况下创建一个叫 'D:\\aaa.db' 的文件。

撰写回答