如何在Python中读取Windows剪贴板文本?
我该如何用Python从(Windows)剪贴板读取文本?
15 个回答
65
我发现 pyperclip 是从 Python 访问剪贴板最简单的方法:
安装 pyperclip:
pip install pyperclip
使用方法:
import pyperclip
s = pyperclip.paste()
pyperclip.copy(s)
# the type of s is string
Pyperclip 支持 Windows、Linux 和 Mac 系统,而且似乎也能处理非 ASCII 字符。测试过的字符包括 ±°©©αβγθΔΨΦåäö。
83
你可以通过内置的模块 Tkinter 来轻松实现这个功能,它其实是一个图形用户界面(GUI)库。下面的代码会创建一个空的控件,用来获取操作系统中的剪贴板内容。
from tkinter import Tk # Python 3
#from Tkinter import Tk # for Python 2.x
Tk().clipboard_get()
151
你可以使用一个叫做 win32clipboard 的模块,它是 pywin32 的一部分。
下面是一个例子,先设置剪贴板的数据,然后再获取它:
import win32clipboard
# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText('testing 123')
win32clipboard.CloseClipboard()
# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print data
文档中有一个重要的提醒:
当窗口完成检查或更改剪贴板后,要通过调用 CloseClipboard 来关闭剪贴板。这样其他窗口就可以访问剪贴板了。在调用 CloseClipboard 后,不要再往剪贴板上放对象。