lang/python/ PyShelve


Shelve provides a persistent store.

Example

put.py

from datetime import datetime
import shelve
import sys
args = sys.argv[1:]
if len(args) == 0:
  keys = ["_"]
else:
  keys = args
data = sys.stdin.read()
with shelve.open("span") as db:
  for key in keys:
    db[key] = data
    print(f"Stored {len(data)} bytes to {key}")

get.py

from datetime import datetime
import shelve
import sys
args = sys.argv[1:]
if len(args) == 0:
  keys = ["_"]
else:
  keys = args
with shelve.open("span") as db:
  for key in keys:
    if key in db:
      print(f"{key}: {db[key]}")
    else:
      print(f"{key} <absent>")