前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 技术篇-用pywin32库实现读写剪贴板

Python 技术篇-用pywin32库实现读写剪贴板

作者头像
小蓝枣
发布2020-09-23 10:04:07
1.1K0
发布2020-09-23 10:04:07
举报

我们需要 pywin32 库,没有的话可以看下安装教程。

pywin32库安装教程

代码语言:javascript
复制
# -*- coding: UTF8 -*-
import win32clipboard as wc
import win32con

# 获取剪切板内容
def getCopy():
    wc.OpenClipboard()
    t = wc.GetClipboardData(win32con.CF_UNICODETEXT)
    wc.CloseClipboard()
    return t

# 写入剪切板内容
def setCopy(str):
    wc.OpenClipboard()
    wc.EmptyClipboard()
    wc.SetClipboardData(win32con.CF_UNICODETEXT, str)
    wc.CloseClipboard()

setCopy("中文English")
print(getCopy())

强调一点,网上很多人将 win32con.CF_UNICODETEXT 写成 win32con.CF_TEXT,这个是需要转码的,不然中文会有乱码,而且写入剪贴板的英文中间会有空格。

乱码问题:

TEXT 的编码格式是 GB2312 的,如果中文用 UTF-8 打出就会是乱码。

如果只是获取剪贴板内容的话在 getCopy() 加个 .decode(“GB2312”) 就好了。

乱码的原因有很多可能,这只是其中一种可能。

英文中间夹空格问题:

空格的原因是写入的英文是一个字节,GB2312 是两个字节,他们转化之后还是就会是在后面加一个字节的空格来占位置。比如 hello 打印出来的效果就是 h e l l o。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-02-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档