我的知识记录

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

Python 用 pyperclip 把生成的文本、Excel 单元格内容、拼接好的字符串自动写入系统剪贴板,免去手动选中复制,配合定时任务实现一键粘贴。

场景痛点

从 Excel 导出一段文本、拼接好一封邮件正文、整理好一段 SQL,每次都要打开编辑器、全选、复制,再切到目标软件粘贴。用 Python 直接把生成的字符串写进剪贴板,运行完脚本直接 Ctrl+V,省掉一大步操作。

用到的库

pip install pyperclip

完整代码

import pyperclip


def copy_order_summary(order_id, items, total):
"""拼接订单摘要并写入剪贴板"""
lines = [f"订单号:{order_id}", "明细:"]
for idx, name in enumerate(items, 1):
lines.append(f"  {idx}. {name}")
lines.append(f"合计:¥{total:.2f}")
text = "\n".join(lines)

pyperclip.copy(text)
print("订单摘要已复制到剪贴板,直接 Ctrl+V 粘贴即可。")
return text


def copy_sql(table, where):
"""根据条件拼一段 SQL 并复制"""
sql = f"SELECT * FROM {table} WHERE {where};"
pyperclip.copy(sql)
print("SQL 已复制:")
print(sql)


def copy_from_file(file_path):
"""读取本地文本文件内容并复制到剪贴板"""
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
pyperclip.copy(content)
print(f"文件 {file_path} 内容已复制到剪贴板,共 {len(content)} 字符。")


def main():
copy_order_summary(
order_id="DD20260914001",
items=["iPhone 17", "硅胶手机壳", "钢化膜"],
total=7999.00,
)

copy_sql("user_order", "create_time >= '2026-09-01'")

# 把当前脚本自己也复制一份,演示从文件读
copy_from_file(__file__)


if __name__ == "__main__":
main()

代码讲解

  • pyperclip.copy(text) 是核心调用,只要传入字符串,系统剪贴板立刻更新。
  • 拼接多行文本用 "\n".join(lines),比 += 字符串拼接更高效,也不会漏换行。
  • copy_from_file 演示了"读文件→复制"的典型流程,encoding="utf-8" 防止中文乱码。
  • 复制完不需要手动按 Ctrl+C,剪贴板已经准备好,切到目标窗口直接 Ctrl+V 就行。

运行结果

运行后控制台依次打印订单摘要、SQL 语句、文件读取提示。此时打开记事本或聊天窗口按 Ctrl+V,最后一次复制的内容(即当前 Python 脚本本身)会被粘贴出来。

注意事项

  • 剪贴板只保留最近一次写入的内容,多次调用 pyperclip.copy 后只有最后一次生效。
  • 复制超大文本(几十 MB)可能卡顿,普通办公文本无压力。
  • 复制图片不能用 pyperclip,需用 Pillow 的 ImageGrabImage.copy 配合系统 API。
  • Windows 下如果用远程桌面,剪贴板需要在远程设置里勾选"剪贴板共享"。
  • 多进程同时写剪贴板会互相覆盖,做自动化时注意串行执行。

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

标签:

更新时间:2026-09-14 20:41:33

上一篇:Python 每天定时运行脚本教程:固定时间自动执行任务

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