如何从python中读取(windows)剪贴板中的文本?

如何从python中读取(windows)剪贴板中的文本?

Foo42 asked 2019-06-22T21:38:33Z

10个解决方案

77 votes

您可以使用名为win32clipboard的模块,它是pywin32的一部分。

这是一个首先设置剪贴板数据然后获取它的示例:

import win32clipboard

# set clipboard data

win32clipboard.OpenClipboard()

win32clipboard.EmptyClipboard()

win32clipboard.SetClipboardText('testing 123')

win32clipboard.CloseClipboard()

# get clipboard data

win32clipboard.OpenClipboard()

data = win32clipboard.GetClipboardData()

win32clipboard.CloseClipboard()

print data

文档中的一个重要提醒:

窗口检查完毕或更改剪贴板后,   通过调用CloseClipboard关闭剪贴板。 这使其他   用于访问剪贴板的窗口。 不要在上面放置物体   调用CloseClipboard后的剪贴板。

Sakin answered 2019-06-22T21:39:08Z

21 votes

您可以通过内置模块Tkinter轻松完成此操作,该模块基本上是一个GUI库。 此代码创建一个空白小部件以从OS获取剪贴板内容。

#from tkinter import Tk # Python 3

from Tkinter import Tk

Tk().clipboard_get()

kmonsoor answered 2019-06-22T21:39:32Z

19 votes

我已经看到很多使用win32模块的建议,但是Tkinter提供了我见过的最简单,最简单的方法,如下文所示:如何使用Python将字符串复制到Windows上的剪贴板?

另外,Tkinter位于python标准库中。

Buttons840 answered 2019-06-22T21:40:03Z

11 votes

上面最受欢迎的答案是奇怪的,它只是简单地清除剪贴板然后获取内容(然后是空的)。 可以清除剪贴板以确保某些剪贴板内容类型(如“格式化文本”)不会“覆盖”您要保存在剪贴板中的纯文本内容。

下面的代码用空格替换剪贴板中的所有换行符,然后删除所有双空格,最后将内容保存回剪贴板:

import win32clipboard

win32clipboard.OpenClipboard()

c = win32clipboard.GetClipboardData()

win32clipboard.EmptyClipboard()

c = c.replace('\n', ' ')

c = c.replace('\r', ' ')

while c.find(' ') != -1:

c = c.replace(' ', ' ')

win32clipboard.SetClipboardText(c)

win32clipboard.CloseClipboard()

born answered 2019-06-22T21:40:35Z

10 votes

如果您不想安装额外的软件包,ctypes也可以完成工作。

import ctypes

CF_TEXT = 1

kernel32 = ctypes.windll.kernel32

user32 = ctypes.windll.user32

user32.OpenClipboard(0)

if user32.IsClipboardFormatAvailable(CF_TEXT):

data = user32.GetClipboardData(CF_TEXT)

data_locked = kernel32.GlobalLock(data)

text = ctypes.c_char_p(data_locked)

print(text.value)

kernel32.GlobalUnlock(data_locked)

else:

print('no text in clipboard')

user32.CloseClipboard()

kichik answered 2019-06-22T21:40:58Z

3 votes

尝试win32all包中的win32clipboard(如果你使用的是ActiveState Python,可能会安装它)。

请参见此处的示例:[http://code.activestate.com/recipes/474121/]

Eli Bendersky answered 2019-06-22T21:41:29Z

2 votes

对于我的控制台程序,上面使用tkinter的答案对我来说并不适用,因为.destroy()总是给出错误,:

无法调用“event”命令:应用程序在执行时已被销毁...

或者当使用.withdraw()时,控制台窗口没有得到焦点。

要解决这个问题,你还必须在.destroy()之前调用.update()。 例:

# Python 3

import tkinter

r = tkinter.Tk()

text = r.clipboard_get()

r.withdraw()

r.update()

r.destroy()

r.withdraw()阻止帧显示一毫秒,然后它将被销毁,将焦点返回到控制台。

user136036 answered 2019-06-22T21:42:21Z

2 votes

使用Pythons库剪贴板

它的使用方式如下:

import clipboard

clipboard.copy("this text is now in the clipboard")

print clipboard.paste()

Dan answered 2019-06-22T21:42:51Z

2 votes

我发现这是从python访问剪贴板的最简单方法:

1)安装pyperclip:pip install pyperclip

2)用法:

import pyperclip

s = pyperclip.paste()

pyperclip.copy(s)

# the type of s is string

在Win3 64位,Python 3.5上测试。 似乎也适用于非ASCII字符。经测试的字符包括±°©ααγθΔΨΦåäö

np8 answered 2019-06-22T21:43:36Z

1 votes

python标准库做到了......

try:

# Python2

import Tkinter as tk

except ImportError:

# Python3

import tkinter as tk

def getClipboardText():

root = tk.Tk()

# keep the window from showing

root.withdraw()

return root.clipboard_get()

Paul Sumpner answered 2019-06-22T21:44:00Z

python获取剪切板内容_如何从python中读取(windows)剪贴板中的文本?相关推荐

  1. python获取剪切板图片_python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...

  2. Android 10 获取剪切板内容

    一般可以放在Activity的onResume中调用如下方法: //获取剪切板内容 private void getClipboardData() {this.getWindow().getDecor ...

  3. js获取剪切板内容(企业微信内嵌网页)

    js获取剪切板内容 应用场景 剪切板内容获取 腾讯会议获取会议时间.会议链接和会议号 更新========================= 企业微信页面剪切板内容读取 iPhone无法进入页面 零宽 ...

  4. 微信小程序点击复制文本到剪切板,获取剪切板内容

    设置剪切板:wx.setClipboardData 获取剪切板:wx.getClipboardData api:https://developers.weixin.qq.com/miniprogram ...

  5. android 获取剪切内容,Android Q 获取剪切板内容

    背景 有时候我们需要在app启动时去获取用户复制的内容,这时候需要进行剪切板相关操作,而Android Q开始只有系统默认的输入法应用或者应用处于焦点时才能获取到剪切板的数据,经测试只有targetS ...

  6. js 获取剪切板内容

    1. 粘贴事件 const items = (event.clipboardData || window.clipboardData).itemsconst len = items.lengthlet ...

  7. vue获取剪切板内容_vue通过clipboard插件实现复制到剪切板功能

    1.在package.json添加依赖"dependencies": { "clipboard": "^2.0.0" } 2.页面引入cli ...

  8. python写入并获取剪切板内容_python写入并获取剪切板内容

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. 小程序开发API之设置和获取剪切板内容wx.setClipboardData、wx.getClipboardData

    wx.setClipboardData(Object object) 设置系统剪贴板的内容 参数Object 示例代码 wx.setClipboardData({data: 'data',succes ...

最新文章

  1. 将URL中的参数提取出来作为对象
  2. linux 大量 root@notty 进程由来
  3. 【年度技术观点合集】计算机视觉,自然语言,机器学习…看看顶级科学家们怎么说
  4. androidstuido 查看logs_使用 Logcat 写入和查看日志
  5. IDEA加载mysql 报:java.sql.SQLException: Unknown system variable ‘query_cache_size‘
  6. HTTP之Cookie和Session(C++ Qt框架实现)
  7. RocketMQ入门到入土(四)producer生产消息源码剖析
  8. 【Vue】—props属性
  9. ryu实例---流表的操作
  10. RYU实战,REST API流表控制(2)
  11. ASP.NET正则实现表情替换为图片,如[hanx]替换为img src=img/hanx.gif/
  12. input 中文输入法额外触发change事件问题
  13. (转)最优化问题简介
  14. 为什么工业互联网平台要配备MQTT网关?
  15. R语言线性回归和时间序列分析北京房价影响因素可视化案例
  16. kafka学习bolg
  17. 【涨粉秘籍】如何快速涨粉并转化为铁粉。
  18. linux控制台 远程关机,ubuntu关机命令合集
  19. 3.4-3.8GHz 5G LTE CBRS频段天线解决方案
  20. 计算机上面的字母代表什么意思,显卡前后字母代表什么意思?

热门文章

  1. poi word插入图片_豌豆BI工具看板Word导出技术详解
  2. 在linux服务器上安装Jenkins
  3. java中final的意义
  4. 搜索引擎索引之如何建立索引
  5. JSONObjec的作用详解——Web网络系列学习笔记
  6. 使用最新版mysql 8.0.11会出现的一些问题
  7. VRRP——虚拟路由器冗余协议
  8. mysql test 映射到实体_从零搭建SpringBoot+MyBatis+MySQL工程
  9. 精简JRE第一步 — 精简bin目录
  10. python线程退出_python子线程退出及线程退出控制的代码