2008/8/14 Benjamin Serrato <[EMAIL PROTECTED]>: > Are there any modules I should know about? Specifically How can I read/write > from places.sqlite?
Here's some code to get you stared (requires python 2.5): >>> import sqlite3 >>> db = sqlite3.connect('places.sqlite') >>> c = db.cursor() >>> c.execute('select * from sqlite_master') >>> table_info = c.fetchall() ### by inspecting table_info, you can get some idea of the structure of the Firefox database (assuming you don't know the structure anyway). For instance, here's a list of the table names: >>> [x[1] for x in table_info if x[0] == 'table'] [u'moz_bookmarks', u'moz_bookmarks_roots', u'moz_keywords', u'sqlite_sequence', u'moz_favicons', u'moz_annos', u'moz_anno_attributes', u'moz_items_annos', u'moz_places', u'moz_historyvisits', u'moz_inputhistory'] I'm assuming here that you know SQL. If you don't, this may be hard :-) Here is a general tip for writing SQL in code: This is BAD: c.execute('select * from my_table where my_var = %s' % search_string) This is GOOD: c.execute('select * from my_table where my_var = ?', (search_string,)) Finally, it appears you may have trouble writing to places.sqlite while firefox is running. Heck, I couldn't even read from it -- had to take a copy of the database and inspect this. It seems that firefox keeps a transaction open which has the effect of locking the whole database (SQLite supports concurrent access, but it can only lock the entire database). I guess that's fair enough -- from Firefox's point of view, they don't really want people messing with the database while they're using it -- but it may make your plans more difficult. -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor