如何在Python中读取Windows剪贴板文本?

157 投票
15 回答
193603 浏览
提问于 2025-04-11 09:20

我该如何用Python从(Windows)剪贴板读取文本?

15 个回答

65

我发现 pyperclip 是从 Python 访问剪贴板最简单的方法:

  1. 安装 pyperclip: pip install pyperclip

  2. 使用方法:

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 后,不要再往剪贴板上放对象。

撰写回答