Python 读取和设置剪贴板内容:pyperclip 跨平台教程
Python 用 pyperclip 库读写系统剪贴板,支持 Windows、Mac、Linux,给出读取当前剪贴板、写入新内容、监听剪贴板变化的完整代码和常见坑。
场景痛点
做数据清洗、批量粘贴、复制格式化文本时,反复 Ctrl+C、Ctrl+V 很容易漏。用 Python 直接读剪贴板里的内容、处理完再写回去,能把"复制→处理→粘贴"串成一步。跨平台兼容也很重要,pyperclip 一个库就能同时支持 Windows、Mac、Linux。
用到的库
pip install pyperclip
完整代码
import pyperclip
import time
def read_clipboard():
"""读取当前剪贴板内容并打印"""
text = pyperclip.paste()
print("当前剪贴板内容:")
print(repr(text))
return text
def write_clipboard(content):
"""把内容写入剪贴板,随后可直接 Ctrl+V 粘贴"""
pyperclip.copy(content)
print(f"已写入剪贴板:{content!r}")
def watch_clipboard(interval=1.0, duration=10):
"""监听剪贴板变化,duration 秒内有变化就打印"""
print(f"开始监听剪贴板 {duration} 秒...")
last = pyperclip.paste()
start = time.time()
while time.time() - start < duration:
current = pyperclip.paste()
if current != last:
print(f"检测到剪贴板变化:{current!r}")
last = current
time.sleep(interval)
def main():
# 1. 读取当前剪贴板
old = read_clipboard()
# 2. 写入新内容
write_clipboard("Hello from Python! 这是一行测试文本。")
# 3. 再读一次确认
read_clipboard()
# 4. 监听 10 秒剪贴板变化
watch_clipboard(interval=1.0, duration=10)
if __name__ == "__main__":
main()
代码讲解
pyperclip.paste():读取系统剪贴板当前文本,返回字符串;剪贴板里不是文本(比如图片)时会返回空字符串。pyperclip.copy(text):把字符串写入剪贴板,写完立刻就能在其他软件里 Ctrl+V 粘贴。- 监听原理:每隔 interval 秒读一次剪贴板,和上次内容对比,不一致就认为发生了变化。
repr(text)打印时保留换行、空格,方便调试真实内容。
运行结果
运行后依次输出当前剪贴板内容、写入的新文本,再等 10 秒。这期间你在浏览器或记事本里复制任意文字,控制台都会立刻打印"检测到剪贴板变化"。
注意事项
- Linux 下 pyperclip 依赖
xclip或xsel,如果运行报command not found,请先sudo apt install xclip。 - pyperclip 只能读写文本,不能复制图片、文件;要处理图片请用 PIL + ImageGrab 或 PyQt。
- WSL 环境下剪贴板和 Windows 不共享,需要单独配置。
- 监听循环里
time.sleep别太小,否则 CPU 占用会升高。 - 中文内容默认 UTF-8,Windows 老版本控制台如果乱码,把终端切成 UTF-8 即可。

更新时间:2026-09-14 20:42:20
上一篇:Python 自动复制文本到剪贴板:pyperclip 一键写入示例