在python中,当使用sqlite3时,物理存储数据库在哪里?

时间:2015-10-19 23:53:37

标签: python sqlite

对不起基本问题。我开始使用Python了。我使用Windows 10,Python 3.5,Notepad ++作为编辑器。 Python安装在z:\python35中,脚本位于z:\python\sqlite,然后我的脚本非常简单:

import sqlite3
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute("CREATE TABLE example (name VARCHAR)")
conn.close()

当我在Notepad ++中运行脚本(以管理员身份运行)时,我执行z:\python35\python.exe -i "$(FULL_CURRENT_PATH)"。看起来脚本运行正常,因为它在第一次运行时什么都不做,但是下次它说:

sqlite3.OperationalError: table example already exits

那没关系,因为我想创建数据库和表。事情是, sample.db 存储在哪里?我在python目录或我的项目目录中找不到它。甚至不在Windows中搜索。

如何删除整个数据库?

4 个答案:

答案 0 :(得分:2)

它将在当前的工作目录中。

你可以看到这是什么
import os
print(os.getcwd())

了解目录后,您可以找到并删除sample.db文件。

答案 1 :(得分:1)

可能在"当前目录" notepadd ++使用的。尝试添加脚本:

import os
print(u"current directory: %s" % os.getcwdu())

也许你可以指定数据库的绝对路径来处理那种不确定性

答案 2 :(得分:0)

如果您不需要数据库在文件系统上保留,可以使用特殊的:memory:名称将它们存储在内存中:

import sqlite3
conn = sqlite3.connect(':memory:')

答案 3 :(得分:0)

一种解决方案可能是像这样更改您当前的工作目录:

#import os module

import os, sqlite3

#change cwd to the given absolute path with a raw string.
absolute_path = r"z:\db\directory_for_db"
os.chdir(absolute_path)
# connect to database
conn = sqlite3.connect('sample.db')
c = conn.cursor()
c.execute("CREATE TABLE example (name VARCHAR)")
conn.close()

这将导致您的 .db 被保存在您定义 absolute_path 的任何位置