Commit 48f9c6df authored by Skip Montanaro's avatar Skip Montanaro

allow dump/load of gdbm files

parent 9c8f7eaf
#!/usr/bin/env python #!/usr/bin/env python
""" """
Synopsis: %(prog)s [-h|-b|-r] dbfile [ picklefile ] Synopsis: %(prog)s [-h|-g|-b|-r|-a] dbfile [ picklefile ]
Convert the database file given on the command line to a pickle Convert the database file given on the command line to a pickle
representation. The optional flags indicate the type of the database (hash, representation. The optional flags indicate the type of the database (hash,
...@@ -20,6 +20,10 @@ try: ...@@ -20,6 +20,10 @@ try:
import dbm import dbm
except ImportError: except ImportError:
dbm = None dbm = None
try:
import gdbm
except ImportError:
gdbm = None
try: try:
import anydbm import anydbm
except ImportError: except ImportError:
...@@ -37,8 +41,9 @@ def usage(): ...@@ -37,8 +41,9 @@ def usage():
def main(args): def main(args):
try: try:
opts, args = getopt.getopt(args, "hbrda", opts, args = getopt.getopt(args, "hbrdag",
["hash", "btree", "recno", "dbm", "anydbm"]) ["hash", "btree", "recno", "dbm",
"gdbm", "anydbm"])
except getopt.error: except getopt.error:
usage() usage()
return 1 return 1
...@@ -83,6 +88,12 @@ def main(args): ...@@ -83,6 +88,12 @@ def main(args):
except AttributeError: except AttributeError:
sys.stderr.write("anydbm module unavailable.\n") sys.stderr.write("anydbm module unavailable.\n")
return 1 return 1
elif opt in ("-g", "--gdbm"):
try:
dbopen = gdbm.open
except AttributeError:
sys.stderr.write("gdbm module unavailable.\n")
return 1
elif opt in ("-d", "--dbm"): elif opt in ("-d", "--dbm"):
try: try:
dbopen = dbm.open dbopen = dbm.open
......
#!/usr/bin/env python #!/usr/bin/env python
""" """
Synopsis: %(prog)s [-h|-b|-r|-a|-d] dbfile [ picklefile ] Synopsis: %(prog)s [-h|-b|-g|-r|-a|-d] dbfile [ picklefile ]
Read the given picklefile as a series of key/value pairs and write to a new Read the given picklefile as a series of key/value pairs and write to a new
database. If the database already exists, any contents are deleted. The database. If the database already exists, any contents are deleted. The
...@@ -24,6 +24,10 @@ try: ...@@ -24,6 +24,10 @@ try:
import dbm import dbm
except ImportError: except ImportError:
dbm = None dbm = None
try:
import gdbm
except ImportError:
gdbm = None
try: try:
import anydbm import anydbm
except ImportError: except ImportError:
...@@ -41,8 +45,9 @@ def usage(): ...@@ -41,8 +45,9 @@ def usage():
def main(args): def main(args):
try: try:
opts, args = getopt.getopt(args, "hbrda", opts, args = getopt.getopt(args, "hbrdag",
["hash", "btree", "recno", "dbm", "anydbm"]) ["hash", "btree", "recno", "dbm", "anydbm",
"gdbm"])
except getopt.error: except getopt.error:
usage() usage()
return 1 return 1
...@@ -87,6 +92,12 @@ def main(args): ...@@ -87,6 +92,12 @@ def main(args):
except AttributeError: except AttributeError:
sys.stderr.write("anydbm module unavailable.\n") sys.stderr.write("anydbm module unavailable.\n")
return 1 return 1
elif opt in ("-g", "--gdbm"):
try:
dbopen = gdbm.open
except AttributeError:
sys.stderr.write("gdbm module unavailable.\n")
return 1
elif opt in ("-d", "--dbm"): elif opt in ("-d", "--dbm"):
try: try:
dbopen = dbm.open dbopen = dbm.open
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment