如何显示db表名称

时间:2015-06-15 00:33:38

标签: python sqlite

最终目标是在启动Firefox之前修改Firefox cookies.sqlite db。

目前,我想显示db中的表。我将cookies.sqlite数据库复制到了我的桌面。我在桌面上使用db。

这是我第一次使用sqlite。我复制了一些代码,但是我无法读取数据库中的表。 List of tables, db schema, dump etc using the Python sqlite3 API

这是我在终端上得到的。我看到了表的列表。

me $ ls cookies.sqlite 
cookies.sqlite
me $ sqlite3 cookies.sqlite
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .tables
moz_cookies
sqlite> .exit
me $ # I run my python script
me $ ./sqlTutorial.bash 
SQLite version: 3.8.10.2
table records...
[]
more table records...
me $ cat dump.sql
BEGIN TRANSACTION;
COMMIT;
me $ 

python代码。我想要做的就是在cookie.sqlite db中显示表格。

#! /bin/python 

import sqlite3 as lite
import sys

con = lite.connect('cookie.sqlite')

with con:

    cur = con.cursor()    
    cur.execute('SELECT SQLITE_VERSION()')

    data = cur.fetchone()

    print ("SQLite version: %s" % data)

print ("table records...")

cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())

print ("more table records...")

with open('dump.sql', 'w') as f:
    for line in con.iterdump():
        f.write('%s\n' % line)

1 个答案:

答案 0 :(得分:2)

如您所见,数据库名称为cookies.sqlite而非cookie.sqlite

  

为什么我没有收到错误?我虽然python会出错。 con = lite.connect('cookie.sqlite')

连接到sqlite数据库要么打开现有数据库文件,要么在数据库不存在时创建新文件。