python练习项目三——多重剪贴板

项目三:多重剪贴板

背景

假定你有一个无聊的任务,要填充一个网页或软件中的许多表格,其中包含一些文本字段。剪贴板让你不必一次又一次输入同样的文本,但剪贴板上一次只有一个内容。如果你有几段不同的文本需要拷贝粘贴,就不得不一次又一次的标记和拷贝几个同样的内容。
可以编写一个Python 程序,追踪几段文本。这个“多重剪贴板”将被命名为mcb.pyw(因为“mcb”比输入“multiclipboard”更简单)。.pyw 扩展名意味着Python运行该程序时,不会显示终端窗口。
该程序将利用一个关键字保存每段剪贴板文本。例如,当运行py mcb.pyw savespam,剪贴板中当前的内容就用关键字spam 保存。通过运行py mcb.pyw spam,这段文本稍后将重新加载到剪贴板中。如果用户忘记了都有哪些关键字,他们可以运行py mcb.pyw list,将所有关键字的列表复制到剪贴板中。

参考思路

下面是程序要做的事:

  • 针对要检查的关键字,提供命令行参数。
  • 如果参数是save,那么将剪贴板的内容保存到关键字。
  • 如果参数是list,就将所有的关键字拷贝到剪贴板。
  • 否则,就将关键词对应的文本拷贝到剪贴板。

这意味着代码需要做下列事情:

  • 从sys.argv 读取命令行参数。
  • 读写剪贴板。
  • 保存并加载shelf 文件。

具体实现

第1 步:注释和shelf 设置

脚本框架:一般将用法信息放在文件顶部的注释中

pyperclip 模块:拷贝和粘贴
sys 模块:读取命令行参数
shelve 模块

第2 步:用一个关键字保存剪贴板内容

如果第一个命令行参数(它总是在sys.argv 列表的下标1 处)是字符串’save’ ;第二个命令行参数就是保存剪贴板当前内容的关键字。关键字将用做 mcbShelf 中的键,值就是当前剪贴板上的文本;如果只有一个命令行参数,就假定它要么是’list’,要么是需要加载到剪贴板的关键字。

第3 步:列出关键字和加载关键字的内容

如果只有一个命令行参数,首先检查它是不是’list’ 。如果是,表示shelf 键的列表的字符串将被拷贝到剪贴板。用户可以将这个列表拷贝到一个打开的文本编辑器,进行查看。否则,你可以假定该命令行参数是一个关键字。如果这个关键字是shelf 中的一个键,就可以将对应的值加载到剪贴板。

实现代码

#! python3
# 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')

# Save clipboard content.
if len(sys.argv) == 3 and sys.argv[1].lower() == 'save':
	mcbShelf[sys.argv[2]] = pyperclip.paste()
	elif len(sys.argv) == 2:
	
		# 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]])
mcbShelf.close()

齐活了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值