最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用python實(shí)現(xiàn)復(fù)制粘貼功能

 更新時(shí)間:2021年03月11日 15:17:15   作者:古明地盆  
這篇文章主要介紹了如何用python實(shí)現(xiàn)復(fù)制粘貼功能,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下

楔子

pandas里面有這么一個(gè)方法:pd.read_clipboard,可以根據(jù)你復(fù)制的內(nèi)容生成DataFrame。是的,就是我們平時(shí)選中,然后復(fù)制、或者Ctrl+C時(shí)拷貝的內(nèi)容,所以比較神奇,那么pandas到底是怎么做到的,它是怎么讀出我們使用Ctrl +C復(fù)制的內(nèi)容呢。

看了一下源碼,非常的復(fù)雜,方法是使用了ctypes,然后調(diào)用了操作系統(tǒng)的一個(gè)動(dòng)態(tài)庫實(shí)現(xiàn)的。ctypes是專門來調(diào)用C、C++使用的,但是我們知道Python有一個(gè)pywin32模塊,對于Windows操作系統(tǒng)提供的接口進(jìn)行了封裝。所以下面我們使用pywin32來實(shí)現(xiàn)我們平時(shí)使用的復(fù)制粘貼功能。

首先是安裝:pip install pywin32。

實(shí)現(xiàn)復(fù)制

下面我們來看看如何使用這個(gè)模塊實(shí)現(xiàn)復(fù)制功能,另外關(guān)于pywin32這個(gè)模塊,它的家族非常的龐大。

里面有很多的win32xxx.pyd,我們直接調(diào)用就行。

# win32clipboard專門用來復(fù)制粘貼的
import win32clipboard as wcb
import win32con as wc
 
# 打開復(fù)制粘貼板
wcb.OpenClipboard()
# 我們之前可能已經(jīng)Ctrl+C了,這里是清空目前Ctrl+C復(fù)制的內(nèi)容。但是經(jīng)過測試,這一步即使沒有也無所謂
wcb.EmptyClipboard()
# 將內(nèi)容寫入復(fù)制粘貼板,第一個(gè)參數(shù)win32con.CF_TEXT不用管,我也不知道它是干什么的
# 關(guān)鍵第二個(gè)參數(shù),就是我們要復(fù)制的內(nèi)容,一定要傳入字節(jié)
wcb.SetClipboardData(wc.CF_TEXT, "古明地覺世界第一可愛".encode("gbk"))
# 關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()

然后我們 Ctrl+V 粘貼就會(huì)得到 "古明地覺世界第一可愛" 這個(gè)字符串,再強(qiáng)調(diào)一次,這里不能傳入字符串、而是要傳入字節(jié)。如果傳入字符串,那么中文會(huì)得到亂碼、ascii文本只會(huì)得到第一個(gè)字符。

另外這里要使用 gbk,因?yàn)槲耶?dāng)前操作系統(tǒng)默認(rèn)編碼使用的是gbk,所以會(huì)對我們輸入的字節(jié)使用 gbk 解碼。因此如果使用utf-8編碼的話,那么粘貼得到的依舊是亂碼。當(dāng)然具體根據(jù)你當(dāng)前的機(jī)器決定。

實(shí)現(xiàn)粘貼

復(fù)制我們實(shí)現(xiàn)了,下面來看看怎么實(shí)現(xiàn)粘貼。

# win32clipboard專門用來復(fù)制粘貼的
import win32clipboard as wcb
import win32con as wc
 
# 打開復(fù)制粘貼板
wcb.OpenClipboard()
# 獲取粘貼板內(nèi)容,既然是獲取,那么只需要一個(gè)參數(shù)即可。
# 會(huì)返回已經(jīng)使用Ctrl+C復(fù)制得到的內(nèi)容
data = wcb.GetClipboardData(wc.CF_TEXT)
# 關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()
 
# 得到的依舊是字節(jié)
"""
我們在"實(shí)現(xiàn)復(fù)制"的時(shí)候說過,因?yàn)镃trl+V默認(rèn)使用gbk解碼,所以在模擬Ctrl+C的時(shí)候我們也要傳入使用gbk編碼的字符串
那么在"實(shí)現(xiàn)粘貼"的時(shí)候也是一樣,我們使用Ctrl+C復(fù)制的時(shí)候,也會(huì)使用gbk編碼成字節(jié)
那么這里模擬Ctrl+V得到字節(jié)之后也要使用gbk解碼
"""
# 然后隨便Ctrl+C拷貝一段內(nèi)容,下面就會(huì)將拷貝的內(nèi)容打印出來
print(data.decode("gbk"))

我們上面的模塊是win32家族,所以它只適用于Windows系統(tǒng),不適用于Linux和macOS。那么如果我想在Linux和macOS中實(shí)現(xiàn)怎么辦呢?也很簡單,事實(shí)上,這兩個(gè)系統(tǒng)實(shí)現(xiàn)起來反而會(huì)更簡單,因?yàn)樽詭Я讼嚓P(guān)的命令。

macOS實(shí)現(xiàn)復(fù)制粘貼

import subprocess

# 實(shí)現(xiàn)拷貝
def copy(text):
  p = subprocess.Popen(["pbcopy", "w"], stdin=subprocess.PIPE, close_fds=True)
  # 將內(nèi)容(text)拷貝起來
  p.communicate(input=text.encode("utf-8"))
   
# 實(shí)現(xiàn)粘貼  
def paste():
  p = subprocess.Popen(["pbpaste", "r"], stdout=subprocess.PIPE, close_fds=True)
  stdout, stderr = p.communicate()
  #返回粘貼內(nèi)容
  return stdout.decode("utf-8") 

Linux實(shí)現(xiàn)復(fù)制粘貼

注意:Linux上實(shí)現(xiàn)復(fù)制粘貼實(shí)際上意義不大,因?yàn)閷?shí)現(xiàn)復(fù)制粘貼的功能的一個(gè)前提是你必須要有顯示器。

而公司使用的服務(wù)器肯定不會(huì)帶顯示器的,使用的時(shí)候都是通過xshell遠(yuǎn)程連接。但是Linux上也提供了相應(yīng)的命令,叫xclip,當(dāng)然這個(gè)命令不是自帶的,使用的時(shí)候可能還要安裝:yum install xclip。下面來看看怎么通過 Python 調(diào)用,實(shí)際上和macOS一樣。

import subprocess

# 實(shí)現(xiàn)拷貝
def copy(text):
  p = subprocess.Popen(
      ["xclip", "-selection", "c"], stdin=subprocess.PIPE, close_fds=True
    )
  p.communicate(input=text.encode("utf-8"))
   
# 實(shí)現(xiàn)粘貼  
def paste():
  p = subprocess.Popen(
      ["xclip", "-selection", "c", "-o"], stdout=subprocess.PIPE, close_fds=True
    )
  stdout, stderr = p.communicate()
  return stdout.decode("utf-8") 

可以看到Linux和macOS還是比較簡單的,因?yàn)椴僮飨到y(tǒng)提供了這個(gè)命令,我們可以直接使用。但是Windows則沒有提供,所以需要使用ctypes,或者使用封裝好的pywin32。

另外還是那句話,Linux上執(zhí)行需要有顯示器,我以我阿里云上的centos為例。

提示我們無法打開顯示器,因?yàn)楦揪蜎]有。 當(dāng)然,感覺這個(gè)功能也沒多大用,當(dāng)做興趣了解一下就行。

以上就是如何用python實(shí)現(xiàn)復(fù)制粘貼功能的詳細(xì)內(nèi)容,更多關(guān)于python實(shí)現(xiàn)復(fù)制粘貼功能的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python requests的SSL證書驗(yàn)證方式

    Python requests的SSL證書驗(yàn)證方式

    這篇文章主要介紹了Python-requests的SSL證書驗(yàn)證方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • python如何解決指定代碼段超時(shí)程序卡死

    python如何解決指定代碼段超時(shí)程序卡死

    這篇文章主要介紹了python如何解決指定代碼段超時(shí)程序卡死,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 用ldap作為django后端用戶登錄驗(yàn)證的實(shí)現(xiàn)

    用ldap作為django后端用戶登錄驗(yàn)證的實(shí)現(xiàn)

    這篇文章主要介紹了用ldap作為django后端用戶登錄驗(yàn)證的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 用python實(shí)現(xiàn)將數(shù)組元素按從小到大的順序排列方法

    用python實(shí)現(xiàn)將數(shù)組元素按從小到大的順序排列方法

    今天小編就為大家分享一篇用python實(shí)現(xiàn)將數(shù)組元素按從小到大的順序排列方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python+OpenCV實(shí)現(xiàn)基于顏色的目標(biāo)識(shí)別

    Python+OpenCV實(shí)現(xiàn)基于顏色的目標(biāo)識(shí)別

    這篇文章主要介紹了利用OpenCV實(shí)現(xiàn)基于顏色的目標(biāo)識(shí)別,即讓攝像頭識(shí)別到視野范圍內(nèi)的有顏色的氣球并返回每個(gè)氣球的中心點(diǎn)坐標(biāo),感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • Python正則表達(dá)式介紹

    Python正則表達(dá)式介紹

    本文介紹了Python對于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫高效的正則表達(dá)式、如何優(yōu)化正則表達(dá)式,這些主題請查看其他教程
    2012-08-08
  • 利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法

    利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率的方法

    這篇文章主要介紹了利用Python3實(shí)現(xiàn)統(tǒng)計(jì)大量單詞中各字母出現(xiàn)的次數(shù)和頻率,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python利用雪花算法實(shí)現(xiàn)生成唯一ID

    Python利用雪花算法實(shí)現(xiàn)生成唯一ID

    雪花算法是在一個(gè)項(xiàng)目體系中生成全局唯一ID標(biāo)識(shí)的一種方式,偶然間看到了Python使用雪花算法不盡感嘆真的是太便捷了。本文就來聊聊這具體的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2022-11-11
  • python圖形工具turtle繪制國際象棋棋盤

    python圖形工具turtle繪制國際象棋棋盤

    這篇文章主要為大家詳細(xì)介紹了python圖形工具turtle繪制國際象棋棋盤,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Python進(jìn)行添加,讀取和刪除Word文檔屬性

    Python進(jìn)行添加,讀取和刪除Word文檔屬性

    在Python中處理Word文檔時(shí),對文檔屬性進(jìn)行操作是一項(xiàng)重要的任務(wù),下面我們來看看如何使用Python實(shí)現(xiàn)對Word文檔屬性的添加,讀取和刪除操作吧
    2025-02-02

最新評論

闽清县| 临武县| 樟树市| 河北区| 图片| 嘉定区| 将乐县| 濉溪县| 柳江县| 米脂县| 科尔| 和顺县| 伊通| 同仁县| 东丽区| 大埔县| 青川县| 长海县| 开鲁县| 措美县| 嫩江县| 太仆寺旗| 富蕴县| 霸州市| 贵德县| 扬中市| 泸定县| 津南区| 商丘市| 许昌市| 龙井市| 昭平县| 全椒县| 汕头市| 苏尼特右旗| 宝山区| 建始县| 化德县| 阿拉善左旗| 淮阳县| 保靖县|