python - 使用 shelve 和 sys 模块制作可更新的剪贴板程序
问题描述
我试图从 Al Sweigart 的书中模仿这段代码,但即使我使用脚本中提到的参数,我也无法通过终端运行它。我并不完全清楚通过 MacOS 终端使用 sys 模块输入的运行代码,所以了解与它相关的任何事情都会非常有帮助!
import shelve, pyperclip, sys
mcbshelf = shelve.open('mcb')
#Save clipboard content
if len(sys.argv)==3:
if sys.argv[1]=='save':
mcbshelf[sys.argv[2]]=pyperclip.paste()
elif sys.argv[1].lower()=='delete':
if sys.argv[2] in mcbshelf:
del mcbshelf[sys.argv[2]]
elif len(sys.argv)==2:
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':
print('Are you sure you want to delete every keyword?')
if sys.argv[1].lower()=='yes':
mcbshelf.clear()
mcbshelf.close()
解决方案
推荐阅读
- ibm-cloud - SyntaxError: invalid syntax EngineerIO.py",第 133 行在 IBM Cloud 上运行模拟
- javascript - Javascript:访问父元素时未定义
- numpy - “import numpy as cp”是处理非 GPU 情况的好习惯吗?
- cassandra - Cassandra 如何读取多个 SSTable 中的单列数据模型分区?
- session - 如何在我的 cakephp 应用程序中配置会话?
- pyspark - 会话在 AWS EMR 集群中不是活动的 Pyspark
- java - 如何在不获取 ConcurrentModificationException 或 IllegalStateException Hibernate 的情况下删除和迭代同一个列表
- scala - 如何模拟 StreamedResponse 正文?
- excel - 如何捕获特定的单元格值
- mysql - 创建表后如何将字段设置为零填充?