对不起基本问题。我开始使用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中搜索。
如何删除整个数据库?
答案 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 的任何位置