2012-09-10 55 views
1

嘗試在python中設置一些基本數據I/O腳本,這些腳本可以從本地sqlite數據庫讀取和寫入。我想使用命令行來驗證我的腳本是否按預期工作,但是它們沒有選擇我創建的任何數據庫或表。sqlite3命令行工具在Ubuntu中不工作

我的第一個腳本將一些字典中的數據寫入表中,第二個腳本讀取並打印它。

寫:

# first part of script creates a dict called 'totals' 

import sqlite3 as lite 

con = lite.connect('test.db') 

with con: 
    cur = con.cursor() 

    cur.execute("DROP TABLE IF EXISTS testtbl")  

    cur.execute("CREATE TABLE testtbl(Date TEXT PRIMARY KEY, Count INT, AverageServerTime REAL, TotalServerTime REAL, AverageClientTime REAL, TotalClientTime REAL)") 
    cur.execute('INSERT INTO testtbl VALUES("2012-09-08", %s, %s, %s, %s, %s)' % (float(totals['count()']), float(totals['serverTime/count()']), float(totals['serverTime']), float(totals['totalLoadTime/count()']), float(totals['totalLoadTime']))) 

閱讀:

 
import sqlite3 as lite 

con = lite.connect('test.db') 

with con:  

    cur = con.cursor()  
    cur.execute("SELECT * FROM testtbl") 

    rows = cur.fetchall() 

    for row in rows: 
     print row 

這些腳本是獨立的,都工作得不錯。但是,如果我導航到命令行中的目錄並激活sqlite3,則沒有任何進一步的工作。我試過'.databases','.tables','.schema'命令,並且無法讓它響應這個特定的數據庫。我可以在命令行中創建dbs並查看它們,但不是由我的腳本創建的。我如何鏈接這些?

運行庫存Ubuntu 12.04,Python 2.7.3,SQLite 3.7.9。我也安裝了libsqlite3-dev,但沒有幫助。

+2

您是否將DB文件名放在命令中? 'sqlite3 test.db' – tMC

+0

你是什麼意思「激活sqlite3」? –

+0

你需要在python中更改任何東西后執行'con.commit()' –

回答

2

您是否將DB文件名放在命令中?

$ sqlite3 test.db