使用 Python 读写剪贴板中的内容 pyperclip

之前了解到 Mac 上的两个命令 pbcopy & pbpaste ,我就在想,如果我把它整合到某些脚本里面,那就可以减少复制粘贴的步骤,节省一些时间。

此时我想到之前写的一个,用来下载贴吧图片的脚本。在之前介绍 制作 kindle 漫画的文章 里有提到它。

贴吧图片下载器

在 Windows 上我是把它打包成一个图形应用,这样其他人使用它比较方便。但是同样的代码,我在 Mac 上打包后有一些问题,所以我就进行了一些修改。只通过命令行的方式来使用它,设置 alias 别名,我只需要在终端中执行 tieba 就可以启动,然后我需要把贴吧帖子的链接粘贴进去,就可以自动下载图片了。

image-20230304160034037

如果不需要下载就按回车直接退出程序。

现在为了节省粘贴这一步,我打算把 pbpaste 这个 Mac 命令整合进去。让程序运行时,自动读取剪贴板的内容,如果里面包含 tieba 这个词,就询问,例如这样

❯ tieba
您当前剪贴板的内容为: https://tieba.baidu.com/p/8288904408?frwh=index
是否开始下载?是的话请按回车键,否则请输入新的链接。(退出输入 n)

不过在这过程中,我发现其实 Python 可以引入 pyperclip 来进行读写剪贴板的操作。例如读写剪贴板

>>> import pyperclip
>>> str = pyperclip.paste()

目前就是简单地判断一下,剪贴板中的字符串,是否包含 tieba 而已。是的话就打印出来,并询问是否下载。

这样修改后,我可以先在浏览器复制链接,然后再到终端执行程序,程序读取到我剪贴板的内容包含 tieba ,询问,我按一下回车键,就可以下载了。比起之前,少了一步 ctrl + v。