社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python自动化必备:用Pyperclip轻松读写剪贴板

Crossin的编程教室 • 3 周前 • 79 次点击  

大家好,欢迎来到 Crossin 的编程教室。

在开发自动化办公脚本、日常小工具时,我们经常需要让 Python 脚本与系统剪贴板进行交互。例如:把程序处理好的文本自动复制,方便手动粘贴到其他软件中;或者读取刚刚复制的内容进行批量处理。

如果使用标准的 GUI 库(如 Tkinter)或系统底层 API 来操作剪贴板,代码通常较为繁琐。而今天 Crossin 要分享的这个第三方库 pyperclip 提供了极其简洁的接口,只需两行代码就能实现文本的复制与粘贴。

1. pyperclip 库简介

pyperclip 是一个跨平台的 Python 模块,专门用于复制和粘贴剪贴板上的文本。

该库的核心功能非常纯粹,主要由两个函数组成:

  • pyperclip.copy(text):将指定的字符串文本写入系统剪贴板(相当于执行 Ctrl + C)。

  • pyperclip.paste():读取当前系统剪贴板中的文本(相当于执行 Ctrl + V)。

2. 安装方法

使用 pyperclip 可通过 pip 进行安装。打开系统终端或命令行,执行:

pip install pyperclip

特别提醒:如果你使用的是 Linux 系统,可能需要额外安装剪贴板工具(如 xclip 或 xsel)作为后端支持。可以通过以下命令安装(Ubuntu为例):

sudo apt-get install xclip

3. 代码示例

3.1 写入剪贴板(复制)

运行以下代码后,程序会将指定的文本放入系统剪贴板。此时你在电脑的任何文本编辑器中按下粘贴快捷键,就能看到这段文本。

import pyperclip
# 将文本复制到剪贴板pyperclip.copy("这是由 Python 写入剪贴板的文本")
print("文本已成功写入剪贴板,请尝试在其他地方粘贴。")

3.2 读取剪贴板(粘贴)

先手动复制任意一段文字,然后运行以下代码,Python 将会读取并打印出剪贴板中的内容。

import pyperclip
# 从剪贴板读取文本text = pyperclip.paste()
print("读取到的剪贴板内容为:")print(text)

4. 实战案例

在实际办公中,我们经常遇到从 PDF 文件中复制段落时,文本带有莫名其妙的强制换行,导致粘贴到翻译软件或文档中时排版错乱。

利用 pyperclip,我们可以写一个简单的脚本,监控剪贴板并自动将换行符替换为空格:

import pyperclipimport time
print("PDF文本换行清洗工具已启动,按 Ctrl + C 可退出程序...")
last_text = ""
try:    while True:        # 获取当前剪贴板内容        current_text = pyperclip.paste()
        # 如果剪贴板内容发生变化,且不为空        if current_text != last_text and current_text.strip():            # 将换行符替换为空格            cleaned_text = current_text.replace("\n"" ")
            # 将清洗后的文本重新写回剪贴板            pyperclip.copy(cleaned_text)
            print(f"\n已清洗文本(原长度: {len(current_text)} -> 现长度: {len(cleaned_text)})")
            # 更新历史记录,避免重复处理            last_text = cleaned_text
        # 每隔 0.5 秒检查一次,避免过度占用 CPU        time.sleep(0.5)
except KeyboardInterrupt:    print("\n程序已安全退出。")

5. 常见问题

在实际使用过程中,初学者容易遇到以下几个问题:

(1)数据类型限制

pyperclip.copy() 函数的参数必须是字符串类型。如果直接传入整数、列表或字典(例如 `pyperclip.copy(12345)`),程序会抛出 TypeError 异常。因此在传入前,需要使用 `str()` 函数将数据转换为字符串。

(2)不支持非文本数据

pyperclip 只能处理纯文本。它无法用来复制或粘贴文件、图片或带有格式的富文本。如果你的业务场景需要处理剪贴板中的图像,需要改用 Pillow 库或系统原生的 GUI 框架。

(3)避免死循环

在编写类似上文的“监控剪贴板”程序时,必须在 while True 循环中加上 time.sleep() 延迟。否则程序会以极高的频率频繁读取内存,导致单个 CPU 核心占用率飙升至 100%。

6. 总结

pyperclip 是一个功能单一但非常实用的工具。你可以用它灵活地读写剪贴板,配合其他库和脚本,实现更丝滑的交互体验。

如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~


添加微信 crossin123 ,加入编程教室共同学习~
感谢转发点赞的各位~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/198419