最近發現了一個很好玩的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 "<stdin>", line 1, in <module>
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