无法从python 3.4.2脚本访问sqlite3数据库

时间:2015-01-18 19:57:31

标签: python database sqlite python-3.4

我正在尝试使用python 3.4.2创建一个sqlite3数据库,名为" podcasts"。我创建了两个文件:

dbcreate.py:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute("create table podcasts(name text, hosts text, channel text)")
print("table created")

dbinsert.py:

import sqlite3 as db

conn = db.connect('test.db')
cursor = conn.cursor()
cursor.execute('insert into podcasts values("Invisibilia","NPR", "Lulu Miller and Alix Spiegel")')
cursor.execute('insert into podcasts values("Hanselminutes", "independent", "Scott Hanselman")')
conn.commit()
conn.close()

当我运行dbcreate.py的模块时,它打印了#34; table created"喜欢它。但是当我为dbinsert.py运行模块时,我没有输出。然后我去Macbook Air上的命令行,当我进入python3.4 shell并想从命令行访问这两个文件时,我得到了:

>>> dbcreate.py
Traceback (most recent call last):
  File "stdin", line 1, in module
NameError: name 'dbcreate' is not defined

>>> dbinsert.py
Traceback (most recent call last):
  File "stdin", line 1, in module
NameError: name 'dbinsert' is not defined

当我尝试通过键入.databases从命令行中的sqlite3访问数据库时,我得到:

我不知道如何访问我在dbinsert.py中创建的数据库,所以我很感激你能给我的任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您正在尝试从Python shell中运行.py文件,这将无效。而是从命令行运行

python3 dbcreate.py
python3 dbinsert.py

假设python3指向您安装的Python 3.4.2。这将执行您的代码,创建.db文件并插入您指定的值。

dbinsert.py没有输出,因为你没有打印任何东西,只是执行数据库命令。