成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么用python實(shí)現(xiàn)復(fù)制粘貼功能-創(chuàng)新互聯(lián)

這篇文章主要介紹“怎么用python實(shí)現(xiàn)復(fù)制粘貼功能”,在日常操作中,相信很多人在怎么用python實(shí)現(xiàn)復(fù)制粘貼功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么用python實(shí)現(xiàn)復(fù)制粘貼功能”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供清河網(wǎng)站建設(shè)、清河做網(wǎng)站、清河網(wǎng)站設(shè)計(jì)、清河網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、清河企業(yè)網(wǎng)站模板建站服務(wù),十余年清河做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

楔子

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)庫(kù)實(shí)現(xiàn)的。ctypes是專門來(lái)調(diào)用C、C++使用的,但是我們知道Python有一個(gè)pywin32模塊,對(duì)于Windows操作系統(tǒng)提供的接口進(jìn)行了封裝。所以下面我們使用pywin32來(lái)實(shí)現(xiàn)我們平時(shí)使用的復(fù)制粘貼功能。

首先是安裝:pip install pywin32。

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

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

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

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

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

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

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

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

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

# win32clipboard專門用來(lái)復(fù)制粘貼的
import win32clipboard as wcb
import win32con as wc
 
# 打開(kāi)復(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é)
"""
我們?cè)?quot;實(shí)現(xiàn)復(fù)制"的時(shí)候說(shuō)過(guò),因?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)容打印出來(lái)
print(data.decode("gbk"))

我們上面的模塊是win32家族,所以它只適用于Windows系統(tǒng),不適用于Linux和macOS。那么如果我想在Linux和macOS中實(shí)現(xiàn)怎么辦呢?也很簡(jiǎn)單,事實(shí)上,這兩個(gè)系統(tǒng)實(shí)現(xiàn)起來(lái)反而會(huì)更簡(jiǎn)單,因?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)拷貝起來(lái)
  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í)候都是通過(guò)xshell遠(yuǎn)程連接。但是Linux上也提供了相應(yīng)的命令,叫xclip,當(dāng)然這個(gè)命令不是自帶的,使用的時(shí)候可能還要安裝:yum install xclip。下面來(lái)看看怎么通過(guò) 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還是比較簡(jiǎn)單的,因?yàn)椴僮飨到y(tǒng)提供了這個(gè)命令,我們可以直接使用。但是Windows則沒(méi)有提供,所以需要使用ctypes,或者使用封裝好的pywin32。

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

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

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

到此,關(guān)于“怎么用python實(shí)現(xiàn)復(fù)制粘貼功能”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

網(wǎng)站標(biāo)題:怎么用python實(shí)現(xiàn)復(fù)制粘貼功能-創(chuàng)新互聯(lián)
文章分享:http://jinyejixie.com/article10/deohdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站導(dǎo)航、標(biāo)簽優(yōu)化定制開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
来安县| 蒙山县| 海门市| 巴林右旗| 探索| 定兴县| 江都市| 闸北区| 江都市| 苏尼特右旗| 安仁县| 德阳市| 泌阳县| 如东县| 秦皇岛市| 景谷| 石阡县| 驻马店市| 吉安市| 赞皇县| 钟山县| 大悟县| 保德县| 博湖县| 高唐县| 霍林郭勒市| 布尔津县| 崇州市| 保亭| 洱源县| 化隆| 海阳市| 弥勒县| 沁水县| 上饶市| 慈利县| 敦煌市| 宝兴县| 内丘县| 民和| 两当县|