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 的
ImageGrab或Image.copy配合系统 API。 - Windows 下如果用远程桌面,剪贴板需要在远程设置里勾选"剪贴板共享"。
- 多进程同时写剪贴板会互相覆盖,做自动化时注意串行执行。

更新时间:2026-09-14 20:41:33
上一篇:Python 每天定时运行脚本教程:固定时间自动执行任务