#! python3
#mcb == multi-clipboard
#mcb.pyw saves and loads pieces of text to the clipboard.
#usage: py.exe mcb.pyw save <keyword> -saves clipboard to keyword.
# py.exe mcb.pyw <keyword> -loads keyword to clipboard.
# py.exe mcb.pyw list -loads all keywords to clipboard.
import shelve,pyperclip,sys
mcbShelf=shelve.open('mcb')
#todo: Save clipboard content.
if len(sys.argv)==3:
if sys.argv[1].lower()=='save':
mcbShelf[sys.argv[2]]=pyperclip.paste()
if sys.argv[1].lower()=='delete':
del mcbShelf[sys.argv[2]]
elif len(sys.argv)==2:
#todo: List keywords and load content.
if sys.argv[1].lower()=='list':
pyperclip.copy(str(list(mcbShelf.keys())))
elif sys.argv[1] in mcbShelf:
pyperclip.copy(mcbShelf[sys.argv[1]])
elif sys.argv[1].lower()=='delete':
for i in mcbShelf.keys():
del mcbShelf[i]
mcbShelf.close()
#第23行可费了点劲:
#1、mcbShelf可以当成字典看,但不是字典,字典没有close attribute
#2、del可以删除单个,但是不能删除所有
#3、list(mcbShelf。keys())=【】,不能分配给函数调用
#4、for i in mcbShelf.keys():
# del mcbShelf[i] 即从keys()一个一个del
#附属文件,有3个,mcb.bak, mcb.dir, mcb.dat ,在命令行运行时产生,