Feeds:
文章
留言

Archive for 一月 10th, 2014

之前寫程式使用 shelve 來紀錄抓取的連結, 因為使用上非常簡單也沒有特殊需求,就用了這個有歷史的套件… 使用上也沒什麼特殊

import shelve
db = shelve.open('db.dat', 'c')
if not link in db:
# do something
db[link] = 'pass'

可是最近頻繁遇到 “bsddb.db.DBRunRecoveryError" 也找不到原因,有人建議改用sqlite, 不過我又不想為了這個簡單功能寫SQL. 後來想說 shelve 有提供很多的資料儲存方式, 不會有 sqlite 吧 XD, 沒錯就是 sqlite3dbm 寫法幾乎一樣

import sqlite3dbm
db = sqlite3dbm.sshelve.open('db.sqlite3')
if not link in db:
# do something
db[link] = 'pass'

資料移轉也非常簡單

import shelve
db = shelve.open('db.dat', 'c')
import sqlite3dbm
db2 = sqlite3dbm.sshelve.open('db.sqlite3')
for key in db.keys():
db2[key] = db[key]

真是好物…. 先觀察一陣子….

Read Full Post »