专栏首页datartisan利用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 %* :: 运行时替换路径即可

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

#! 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()

本文分享自微信公众号 - 乐享数据8090(gh_5703273a0562),作者:小蚂蚁

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 技术篇-利用pyqt5库监听剪切板变动,clipboard.dataChanged.connect()剪切板监听

    PyQt5 的 clipboard.dataChanged.connect() 方法可以监听剪切板的变动。

    小蓝枣
  • 用clipboard.js实现纯JS复制文本到剪切板

    ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器不支持flash,导致一些没法正常使用了。

    黄啊码
  • Python 技术篇-pyperclip库实现读取写入剪切板,超简单

    直接pip install pyperclip就可以安装了。 用法也是非常的简单,就是 copy() 和 paste(),比 pywin32 不知道简单多少,...

    小蓝枣
  • Python 实现一个自动化翻译和替换的工具

    阅读内容包含大量英文的 PPT、Word、Excel 或者记事本时,由于英语不熟悉,为了流利地阅读,需要打开浏览器进入谷歌翻译的主界面,然后把英文复制到谷歌翻译...

    月小水长
  • Python实战之特定文本提取,挑战高效办公的第一步

    最近很多地方都在宣传Python的自动化办公的强大之处,那么今天大灰狼就来和大家分享一个Python自动化办公的实战项目。

    灰小猿
  • 利用 mstsc 反向攻击思路整理

    在实战中,当面对 DMZ 区隔离、堡垒机时,很多直接的正向攻击方式都很难实现。曾经在某次渗透过程中,通过日志分析,已经确认核心内网的 ip 地址,但是发现目标机...

    信安之路
  • Python 技术篇-用pywin32库实现读写剪贴板

    我们需要 pywin32 库,没有的话可以看下安装教程。 pywin32库安装教程

    小蓝枣
  • 多任务—协程

    协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要...

    py3study
  • 每一个搞爬虫的人,都应该知道的神器!

    curl是利用URL语法在命令行方式下工作的开源文件传输工具,支持文件的上传和下载,是综合传输工具。[1]

    快学Python
  • 薅羊毛 | Python 自动化带你轻松赚钱(完结版)

    最近,有一个朋友告诉我,她在某平台上购买了一部手机,收到货之后发现商品质量挺好的,价格也不贵。

    龙哥
  • 薅羊毛 | Python 自动化带你轻松赚钱

    最近,有一个朋友告诉我,她在某平台上购买了一部手机,收到货之后发现商品质量挺好的,价格也不贵。

    数据森麟
  • Anaconda:剪切板数据读取(Python&R)

    Python和R都是免费的开源软件,这类软件有一个对小白新手非常友好的特点,那就是……哪里不会查哪里,随用随学……所以,别的理论不说现在要开始进行数据分析啦~

    二号姬
  • 如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

    其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中。

    AirPython
  • 如何利用 Python 爬虫实现给微信群发新闻早报?(详细)

    其实,早期使用的方案,是利用爬虫获取到一些新闻网站的标题,然后做了一些简单的数据清洗,最后利用 itchat 发送到指定的社群中。

    AirPython
  • IPython使用学习笔记

    学习《利用python进行数据分析》第三章 IPython:一种交互式计算和开发环境的笔记,共享给大家,同时为自己作为备忘用。 ? 安装ipython用pip即...

    Angel_Kitty
  • Python识别文字,实现看图说话 | CSDN博文精选

    现在写文件很多网站都不让复制了,所以每次都是截图然后发到QQ上然后用手机QQ的文字识别再发回电脑。感觉有点小麻烦了,所以想自己写一个小软件方便方便自己,就有了这...

    AI科技大本营
  • iPhone用户状告App厂商手脚不干净,偷窥我电脑剪切板干什么

    iOS 14加入了更强的隐私管理功能,如果手机App调用摄像头、麦克风,会在状态栏中显示一个红点,如果调用剪切板,更是会弹出警告通知。

    量子位
  • Python识别文字,实现看图说话

    现在写文件很多网站都不让复制了,所以每次都是截图然后发到QQ上然后用手机QQ的文字识别再发回电脑。感觉有点小麻烦了,所以想自己写一个小软件方便方便自己,就有了这...

    代码医生工作室
  • 只需 10 行代码,Python 教你自制屏幕翻译工具,高效办公

    大家如果平常遇到不认识的英文,相信大部分的人都会复制内容后,使用翻译软件,或者拷贝到网站上去执行翻译。

    AirPython

扫码关注云+社区

领取腾讯云代金券