我的知识记录

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 依赖 xclipxsel,如果运行报 command not found,请先 sudo apt install xclip
  • pyperclip 只能读写文本,不能复制图片、文件;要处理图片请用 PIL + ImageGrab 或 PyQt。
  • WSL 环境下剪贴板和 Windows 不共享,需要单独配置。
  • 监听循环里 time.sleep 别太小,否则 CPU 占用会升高。
  • 中文内容默认 UTF-8,Windows 老版本控制台如果乱码,把终端切成 UTF-8 即可。

Python 读取和设置剪贴板内容:pyperclip 跨平台教程

标签:

更新时间:2026-09-14 20:42:20

上一篇:Python 自动复制文本到剪贴板:pyperclip 一键写入示例

下一篇:Python 密码强度检测:正则+评分给密码打分教程