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

詳解如何使用Python實現(xiàn)復(fù)制粘貼的功能

 更新時間:2023年01月03日 11:57:03   作者:古明地覺  
pandas?里面有一個?pd.read_clipboard?函數(shù),可以根據(jù)你復(fù)制的內(nèi)容生成DataFrame。本文就利用這個函數(shù)實現(xiàn)復(fù)制粘貼的功能,感興趣的可以了解一下

楔子

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

看了一下源碼,不同的操作系統(tǒng)使用的復(fù)制方式不同,Windows 比較復(fù)雜,方法是使用了ctypes,然后調(diào)用了操作系統(tǒng)的一個動態(tài)庫實現(xiàn)的;而 macOS 和 Linux 比較簡單,調(diào)用的是內(nèi)置的命令。

下面我們來看看如何在這三個系統(tǒng)上實現(xiàn)復(fù)制粘貼的功能。

Windows 上的復(fù)制粘貼

我們說 Windows 是使用 ctypes 調(diào)用動態(tài)庫實現(xiàn)的,比較麻煩。但是我們知道 Python 有一個 pywin32 模塊,對于 Windows 操作系統(tǒng)提供的接口進行了封裝。所以在 Windows 上我們會使用 pywin32 來實現(xiàn)復(fù)制粘貼功能。

該模塊直接通過 pip install pywin32 安裝即可。

import?win32clipboard?as?wcb
import?win32con?as?wc

#?打開復(fù)制粘貼板
wcb.OpenClipboard()
#?我們之前可能已經(jīng)?Ctrl?+?C?了
#?這里是清空目前?Ctrl?+?C?復(fù)制的內(nèi)容
#?但顯然沒有這一步也無所謂,因為第二次復(fù)制會覆蓋第一次復(fù)制的內(nèi)容
wcb.EmptyClipboard()
#?將內(nèi)容寫入復(fù)制粘貼板,第一個參數(shù)是?win32con.CF_TEXT
#?第二個參數(shù)是我們要復(fù)制的內(nèi)容,編碼的時候指定為?"gbk"
wcb.SetClipboardData(wc.CF_TEXT,?"古明地覺".encode("gbk"))
#?關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()

然后我們 Ctrl+V 粘貼就會得到 "古明地覺" 這個字符串,另外編碼的時候要使用 gbk,因為我當(dāng)前操作系統(tǒng)默認編碼使用的是 gbk,所以會對我們輸入的字節(jié)使用 gbk 解碼。因此如果使用 utf-8 編碼的話,那么粘貼之后得到的就會是亂碼。當(dāng)然具體編碼根據(jù)你當(dāng)前的機器決定。

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

import?win32clipboard?as?wcb
import?win32con?as?wc

wcb.OpenClipboard()
#?獲取粘貼板內(nèi)容,既然是獲取,那么只需要一個參數(shù)即可
#?會返回已經(jīng)使用?Ctrl?+?C?復(fù)制的內(nèi)容
data?=?wcb.GetClipboardData(wc.CF_TEXT)
#?關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()

#?然后隨便?Ctrl+C?拷貝一段內(nèi)容
#?下面就會將拷貝的內(nèi)容打印出來
print(data.decode("gbk"))

還是很簡單的,我們上面使用的模塊是 win32 系列,所以它只適用于 Windows 系統(tǒng)。那如果我想在 Linux 和 macOS 中實現(xiàn)怎么辦呢?也很簡單,事實上,這兩個系統(tǒng)實現(xiàn)起來反而會更簡單,因為自帶了相關(guān)的命令。

macOS 上的復(fù)制粘貼

macOS 自帶了相關(guān)命令,我們只需要通過 subprocess 模塊去調(diào)用即可,舉個例子:

非常簡單,那么代碼要如何實現(xiàn)呢?

import?subprocess

#?實現(xiàn)拷貝
def?copy(text):
????p?=?subprocess.Popen(["pbcopy",?"w"],
?????????????????????????stdin=subprocess.PIPE,
?????????????????????????close_fds=True)
????#?將內(nèi)容拷貝起來,注意?macOS?的編碼默認是?utf-8
????p.communicate(input=text.encode("utf-8"))

#?實現(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")

copy("古明地覺的編程教室")
print(paste())??#?古明地覺的編程教室

以上代碼在 macOS 上執(zhí)行,由于自帶了復(fù)制粘貼相關(guān)的命令,操作起來就比 Windows 方便多了。

Linux 上的復(fù)制粘貼

Linux 也提供了復(fù)制粘貼的命令,叫 xclip,但這個命令不是自帶的,我們需要使用 yum 安裝。

import?subprocess

#?實現(xiàn)拷貝
def?copy(text):
????p?=?subprocess.Popen(
????????["xclip",?"-selection",?"c"],?
????????stdin=subprocess.PIPE,?close_fds=True
????)
????p.communicate(input=text.encode("utf-8"))

#?實現(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 上通過命令實現(xiàn)復(fù)制粘貼沒什么意義,因為我們都是通過 SSH 遠程連接到公司的服務(wù)器,這種情況下 xclip 是不生效的。

當(dāng)然,感覺這個功能也沒多大用,當(dāng)做興趣了解一下就行。

pyperclip 實現(xiàn)復(fù)制粘貼

最后我們再來介紹一個模塊,叫 pyperclip,它對不同的操作系統(tǒng)的復(fù)制粘貼功能進行了封裝,可以簡化我們的操作。舉個例子:

import?pyperclip

#?復(fù)制
pyperclip.copy("哼哼")
#?粘貼
print(pyperclip.paste())??#?哼哼?

還是很方便的,以后就可以使用這個模塊,自動幫我們屏蔽了操作系統(tǒng)間的差異。另外,這個模塊只支持復(fù)制文本。

到此這篇關(guān)于詳解如何使用Python實現(xiàn)復(fù)制粘貼的功能的文章就介紹到這了,更多相關(guān)Python復(fù)制粘貼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3實現(xiàn)發(fā)送郵件和發(fā)送短信驗證碼功能

    Python3實現(xiàn)發(fā)送郵件和發(fā)送短信驗證碼功能

    這篇文章主要介紹了Python3實現(xiàn)發(fā)送郵件和發(fā)送短信驗證碼功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python圖像處理之簡單畫板實現(xiàn)方法示例

    Python圖像處理之簡單畫板實現(xiàn)方法示例

    這篇文章主要介紹了Python圖像處理之簡單畫板實現(xiàn)方法,結(jié)合實例形式分析了Python基于cv2模塊與numpy模塊的數(shù)值計算及矩形圖形繪制簡單操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python編程利用科赫曲線實現(xiàn)三維飄雪效果示例過程

    Python編程利用科赫曲線實現(xiàn)三維飄雪效果示例過程

    這篇文章主要介紹了Python編程實現(xiàn)三維飄雪效果示例過程,通過本示例你可以自己做出一個浪漫的雪花飄落效果,有需要的朋友可以借鑒參考下
    2021-10-10
  • python安裝scipy的方法步驟

    python安裝scipy的方法步驟

    在本篇文章里小編給各位分享了關(guān)于python怎么安裝scipy的具體方法和實例代碼,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • python 如何獲取頁面所有a標簽下href的值

    python 如何獲取頁面所有a標簽下href的值

    這篇文章主要介紹了python 獲取頁面所有a標簽下href的值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Python3.5面向?qū)ο笈c繼承圖文實例詳解

    Python3.5面向?qū)ο笈c繼承圖文實例詳解

    這篇文章主要介紹了Python3.5面向?qū)ο笈c繼承,結(jié)合圖文與實例形式詳細分析了Python3.5面向?qū)ο笈c繼承的相關(guān)概念、原理、實現(xiàn)方法及操作注意事項,需要的朋友可以參考下
    2019-04-04
  • Python中random模塊常用方法的使用教程

    Python中random模塊常用方法的使用教程

    這篇文章主要給大家介紹了關(guān)于Python中random模塊常用方法的使用教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 使用Python實現(xiàn)音頻降噪功能

    使用Python實現(xiàn)音頻降噪功能

    在音頻處理領(lǐng)域,背景噪聲是一個常見的問題,為了提高音頻的質(zhì)量,我們需要對音頻進行降噪處理,本文將介紹如何使用 Python 實現(xiàn)音頻降噪,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-11-11
  • Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā))

    Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā))

    這篇文章主要介紹了Python django框架開發(fā)發(fā)布會簽到系統(tǒng)(web開發(fā)),本文通過實例代碼效果展示截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python 訪問限制 private public的詳細介紹

    Python 訪問限制 private public的詳細介紹

    在一個模塊中,我們可能會定義很多函數(shù)和變量。這篇文章主要介紹了Python 訪問限制 private public的詳細介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10

最新評論

共和县| 射阳县| 马公市| 衡山县| 淳安县| 华亭县| 将乐县| 商城县| 平山县| 抚顺市| 静安区| 锦屏县| 新晃| 无锡市| 信丰县| 察雅县| 肥乡县| 太原市| 兴化市| 原平市| 天气| 辰溪县| 浏阳市| 景德镇市| 浦县| 和林格尔县| 文登市| 盖州市| 阿克陶县| 临泽县| 万宁市| 镇赉县| 丹棱县| 北辰区| 锦屏县| 克什克腾旗| 济源市| 密云县| 河间市| 溧阳市| 池州市|