日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

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

發(fā)布時(shí)間:2024/1/23 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python获取剪切板内容_如何从python中读取(windows)剪贴板中的文本? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如何從python中讀取(windows)剪貼板中的文本?

如何從python中讀取(windows)剪貼板中的文本?

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

10個(gè)解決方案

77 votes

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

這是一個(gè)首先設(shè)置剪貼板數(shù)據(jù)然后獲取它的示例:

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

文檔中的一個(gè)重要提醒:

窗口檢查完畢或更改剪貼板后,?? 通過(guò)調(diào)用CloseClipboard關(guān)閉剪貼板。 這使其他?? 用于訪問(wèn)剪貼板的窗口。 不要在上面放置物體?? 調(diào)用CloseClipboard后的剪貼板。

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

21 votes

您可以通過(guò)內(nèi)置模塊Tkinter輕松完成此操作,該模塊基本上是一個(gè)GUI庫(kù)。 此代碼創(chuàng)建一個(gè)空白小部件以從OS獲取剪貼板內(nèi)容。

#from tkinter import Tk # Python 3

from Tkinter import Tk

Tk().clipboard_get()

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

19 votes

我已經(jīng)看到很多使用win32模塊的建議,但是Tkinter提供了我見(jiàn)過(guò)的最簡(jiǎn)單,最簡(jiǎn)單的方法,如下文所示:如何使用Python將字符串復(fù)制到Windows上的剪貼板?

另外,Tkinter位于python標(biāo)準(zhǔn)庫(kù)中。

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

11 votes

上面最受歡迎的答案是奇怪的,它只是簡(jiǎn)單地清除剪貼板然后獲取內(nèi)容(然后是空的)。 可以清除剪貼板以確保某些剪貼板內(nèi)容類(lèi)型(如“格式化文本”)不會(huì)“覆蓋”您要保存在剪貼板中的純文本內(nèi)容。

下面的代碼用空格替換剪貼板中的所有換行符,然后刪除所有雙空格,最后將內(nèi)容保存回剪貼板:

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,可能會(huì)安裝它)。

請(qǐng)參見(jiàn)此處的示例:[http://code.activestate.com/recipes/474121/]

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

2 votes

對(duì)于我的控制臺(tái)程序,上面使用tkinter的答案對(duì)我來(lái)說(shuō)并不適用,因?yàn)?destroy()總是給出錯(cuò)誤,:

無(wú)法調(diào)用“event”命令:應(yīng)用程序在執(zhí)行時(shí)已被銷(xiāo)毀...

或者當(dāng)使用.withdraw()時(shí),控制臺(tái)窗口沒(méi)有得到焦點(diǎn)。

要解決這個(gè)問(wèn)題,你還必須在.destroy()之前調(diào)用.update()。 例:

# Python 3

import tkinter

r = tkinter.Tk()

text = r.clipboard_get()

r.withdraw()

r.update()

r.destroy()

r.withdraw()阻止幀顯示一毫秒,然后它將被銷(xiāo)毀,將焦點(diǎn)返回到控制臺(tái)。

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

2 votes

使用Pythons庫(kù)剪貼板

它的使用方式如下:

import clipboard

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

print clipboard.paste()

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

2 votes

我發(fā)現(xiàn)這是從python訪問(wèn)剪貼板的最簡(jiǎn)單方法:

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上測(cè)試。 似乎也適用于非ASCII字符。經(jīng)測(cè)試的字符包括±°?ααγθΔΨΦ???

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

1 votes

python標(biāo)準(zhǔn)庫(kù)做到了......

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

總結(jié)

以上是生活随笔為你收集整理的python获取剪切板内容_如何从python中读取(windows)剪贴板中的文本?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。