4 Synopsis: %(prog)s [-h|-g|-b|-r|-a] dbfile [ picklefile ]
6 Convert the database file given on the command line to a pickle
7 representation. The optional flags indicate the type of the database:
10 -b - open as bsddb btree file
12 -g - open as gdbm file
13 -h - open as bsddb hash file
14 -r - open as bsddb recno file
16 The default is hash. If a pickle file is named it is opened for write
17 access (deleting any existing data). If no pickle file is named, the pickle
18 output is written to standard output.
41 import cPickle as pickle
48 sys.stderr.write(__doc__ % globals())
52 opts, args = getopt.getopt(args, "hbrdag",
53 ["hash", "btree", "recno", "dbm",
59 if len(args) == 0 or len(args) > 2:
68 pfile = open(args[1], 'wb')
70 sys.stderr.write("Unable to open %s\n" % args[1])
75 if opt in ("-h", "--hash"):
77 dbopen = bsddb.hashopen
78 except AttributeError:
79 sys.stderr.write("bsddb module unavailable.\n")
81 elif opt in ("-b", "--btree"):
84 except AttributeError:
85 sys.stderr.write("bsddb module unavailable.\n")
87 elif opt in ("-r", "--recno"):
90 except AttributeError:
91 sys.stderr.write("bsddb module unavailable.\n")
93 elif opt in ("-a", "--anydbm"):
96 except AttributeError:
97 sys.stderr.write("anydbm module unavailable.\n")
99 elif opt in ("-g", "--gdbm"):
102 except AttributeError:
103 sys.stderr.write("gdbm module unavailable.\n")
105 elif opt in ("-d", "--dbm"):
108 except AttributeError:
109 sys.stderr.write("dbm module unavailable.\n")
113 sys.stderr.write("bsddb module unavailable - ")
114 sys.stderr.write("must specify dbtype.\n")
117 dbopen = bsddb.hashopen
120 db = dbopen(dbfile, 'r')
122 sys.stderr.write("Unable to open %s. " % dbfile)
123 sys.stderr.write("Check for format or version mismatch.\n")
127 pickle.dump((k, db[k]), pfile, 1==1)
134 if __name__ == "__main__":
135 sys.exit(main(sys.argv[1:]))