最近发现了一个很好玩的python包:pyperclip。它能访问剪贴板的文字内容,使用也很简单。只有两个功能:复制剪贴板里的内容、向剪贴板写入内容。
安装:
pyperclip是个跨平台的python包,兼容python2和python3。
只需要一条命令就可以安装:
pip install pyperclip
在windows里没有额外依赖。
在mac里需要系统里自带的pbcopy和pbpaste 命令。
在linux里需要系统的xclip或xsel 命令,如果没有的话需要用sudo apt-get install xclip或sudo apt-get install xsel安装(注意:xsel 有时可能不工作)。否则需要在linux里安装gtk 或PyQt4 模块。
复杂剪贴板内容:
假如我先用ctrl+c在剪贴板里复制一段文字“码率控制”,然后执行下面的命令:
>>> import pyperclip
>>> pyperclip.paste()
'码率控制'
>>>
pyperclip.paste()函数可以获取剪贴板里的内容。
向剪贴板写入内容:
>>> import pyperclip
>>> pyperclip.copy("这是写入的内容")
>>> pyperclip.paste()
'这是写入的内容'
>>>
pyperclip.copy函数可以向剪贴板写入内容。然后可以使用pyperclip.paste或者ctrl+v检验剪贴板内容是否和写入的一样。
扩展:
pyperclip还有pyperclip.waitForPaste()函数,如果剪贴板为空它就会阻塞,直到剪贴板不为空它会返回剪贴板的内容。
>>> import pyperclip
>>> pyperclip.waitForPaste() # 直到剪贴板不为空才返回
'Hello, world!'
pyperclip还有pyperclip.waitForNewPaste()函数,它会一直阻塞直到剪贴板内容改变它将返回剪贴板上新的内容。
>>> pyperclip.copy('original text')
>>> pyperclip.waitForNewPaste() # 只有当剪贴板的内容不为'original text'时才返回
'Hello, world!'
上面的函数还可以设置阻塞时间,如果超过时间还没有返回则抛出PyperclipTimeoutException
异常。
>>> import pyperclip
>>> pyperclip.waitForNewPaste(5)
Traceback (most recent call last):
File "
", line 1, in File "c:\github\pyperclip\src\pyperclip\__init__.py", line 689, in waitForNewPaste
raise PyperclipTimeoutException('waitForNewPaste() timed out after ' + str(timeout) + ' seconds.')
pyperclip.PyperclipTimeoutException: waitForNewPaste() timed out after 5 seconds.
感兴趣的请关注微信公众号Video Coding