python 如何清空所有的变量_利用Python实现多重剪切板

假定你有一个无聊的任务,要填充一个网页或软件中的许多表格,其中包含一 些文本字段。剪贴板让你不必一次又一次输入同样的文本,但剪贴板上一次只有一 个内容。如果你有几段不同的文本需要拷贝粘贴,就不得不一次又一次的标记和拷 贝几个同样的内容。这无聊的工作几乎让人崩溃。

还好你学习了python,python最适合干这种活了。

复制和粘贴需要 pyperclip 模块, 读取命令行参数需要 sys 模块。将 Python 程序中的变量保存到二进制的 shelf 文件中会用到shelve 模块。shelve 模块让你在程序中添加“保存” 和“打开” 功能,方便程序下一次运行时加载变量。

该程序要做的事情如下:

  1. 识别命令行参数;
  2. 什么时候保存剪切板内容?
  3. 什么时候删除剪切板内容?
  4. 如何呈现剪切板内容?全部呈现还是按照关键字呈现?
  5. 如何清空剪切板?
  6. 清空剪切板后在粘贴,会看到什么内容?

假设你使用的windows环境,要运行该程序,你需要创建一个bat批处理程序,使用组合键win + R调出的运行窗口来运行该程序。bat批处理文件内容如下:

@pythonw.exe D:\python\ch00_book\mcb.pyw %* :: 运行时替换路径即可

9f5a079e0afb434513083a1d9b00ad05.png

将程序进行分解,可以有效帮助我们去编写程序,让我们来编写一个脚本框架,他看起来是这样的。

#! python3
# mcb.pyw - 程序的名称,用来保存和加载多重剪切板

# 导入用到的模块
import shelve, pyperclip, sys
# 初始化 shelf 文件 mcb.
mcbShelf = shelve.open('mcb')
# 获取命令行参数
command = sys.argv[1].lower()
# TODO: 保存剪切板内容,并为每次复制的内容设置一个关键字.
# TODO: 列出所有关键字.
# TODO: 删除某个关键字,并清除该关键字对应的内容.
# TODO: 删除所有关键字,清空剪切板.
# TODO: 根据命令行参数,显示某关键字对应的内容.
mcbShelf.close()

下面依次补充每个步骤的命令

保存剪切板内容,并为每次复制的内容设置一个关键字

if command == 'save':
    mcbShelf[sys.argv[2]] = pyperclip.paste()

列出所有关键字

elif command == 'list':
    pyperclip.copy(", ".join(mcbShelf.keys()))

删除某个关键字,并清除该关键字对应的内容

elif command == 'delete':
    del mcbShelf[sys.argv[2]]

删除所有关键字,清空剪切板

elif command == 'delete_all':
    # 清空 shelf 文件
    mcbShelf.clear()
    # mcbShelf = shelve.open('mcb', flag='n')
    # 清空剪切板
    pyperclip.copy('')

根据命令行参数,显示某关键字对应的内容

elif sys.argv[1] in mcbShelf:
    pyperclip.copy(mcbShelf[sys.argv[1]])
else:
    pyperclip.copy('Sorry, You have input a wrong keyword.')

完整程序

import shelve
import pyperclip
import sys

mcbShelf = shelve.open('mcb')
command = sys.argv[1].lower()

if command == 'save':
    mcbShelf[sys.argv[2]] = pyperclip.paste()
elif command == 'list':
    pyperclip.copy(", ".join(mcbShelf.keys()))
elif command == 'delete':
    del mcbShelf[sys.argv[2]]
elif command == 'delete_all':
    # 清空 shelf 文件
    mcbShelf.clear()
    # mcbShelf = shelve.open('mcb', flag='n')
    # 清空剪切板
    pyperclip.copy('')
elif sys.argv[1] in mcbShelf: # 如果命令行参数是关键字
    pyperclip.copy(mcbShelf[sys.argv[1]])
else: #如果命令行参数不是关键字
    pyperclip.copy('Sorry, You have input a wrong keyword.')

mcbShelf.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值