婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何用python實(shí)現(xiàn)復(fù)制粘貼功能

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

熱門標(biāo)簽:北京外呼電銷機(jī)器人招商 南京crm外呼系統(tǒng)排名 賓館能在百度地圖標(biāo)注嗎 云南地圖標(biāo)注 汕頭電商外呼系統(tǒng)供應(yīng)商 crm電銷機(jī)器人 電銷機(jī)器人 金倫通信 鄭州智能外呼系統(tǒng)中心 400電話 申請 條件

楔子

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

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

首先是安裝:pip install pywin32

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

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

里面有很多的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ù)制粘貼板,第一個參數(shù)win32con.CF_TEXT不用管,我也不知道它是干什么的
# 關(guān)鍵第二個參數(shù),就是我們要復(fù)制的內(nèi)容,一定要傳入字節(jié)
wcb.SetClipboardData(wc.CF_TEXT, "古明地覺世界第一可愛".encode("gbk"))
# 關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()

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

另外這里要使用 gbk,因為我當(dāng)前操作系統(tǒng)默認(rèn)編碼使用的是gbk,所以會對我們輸入的字節(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)容,既然是獲取,那么只需要一個參數(shù)即可。
# 會返回已經(jīng)使用Ctrl+C復(fù)制得到的內(nèi)容
data = wcb.GetClipboardData(wc.CF_TEXT)
# 關(guān)閉復(fù)制粘貼板
wcb.CloseClipboard()
 
# 得到的依舊是字節(jié)
"""
我們在"實(shí)現(xiàn)復(fù)制"的時候說過,因為Ctrl+V默認(rèn)使用gbk解碼,所以在模擬Ctrl+C的時候我們也要傳入使用gbk編碼的字符串
那么在"實(shí)現(xiàn)粘貼"的時候也是一樣,我們使用Ctrl+C復(fù)制的時候,也會使用gbk編碼成字節(jié)
那么這里模擬Ctrl+V得到字節(jié)之后也要使用gbk解碼
"""
# 然后隨便Ctrl+C拷貝一段內(nèi)容,下面就會將拷貝的內(nèi)容打印出來
print(data.decode("gbk"))

我們上面的模塊是win32家族,所以它只適用于Windows系統(tǒng),不適用于Linux和macOS。那么如果我想在Linux和macOS中實(shí)現(xiàn)怎么辦呢?也很簡單,事實(shí)上,這兩個系統(tǒng)實(shí)現(xiàn)起來反而會更簡單,因為自帶了相關(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í)際上意義不大,因為實(shí)現(xiàn)復(fù)制粘貼的功能的一個前提是你必須要有顯示器。

而公司使用的服務(wù)器肯定不會帶顯示器的,使用的時候都是通過xshell遠(yuǎn)程連接。但是Linux上也提供了相應(yīng)的命令,叫xclip,當(dāng)然這個命令不是自帶的,使用的時候可能還要安裝: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還是比較簡單的,因為操作系統(tǒng)提供了這個命令,我們可以直接使用。但是Windows則沒有提供,所以需要使用ctypes,或者使用封裝好的pywin32。

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

提示我們無法打開顯示器,因為根本就沒有。 當(dāng)然,感覺這個功能也沒多大用,當(dāng)做興趣了解一下就行。

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

您可能感興趣的文章:
  • python通用讀取vcf文件的類(復(fù)制粘貼即可用)
  • 復(fù)制粘貼功能的Python程序
  • Python列表的深復(fù)制和淺復(fù)制示例詳解
  • Python文件名匹配與文件復(fù)制的實(shí)現(xiàn)
  • 基于python實(shí)現(xiàn)復(fù)制文件并重命名
  • python利用os模塊編寫文件復(fù)制功能——copy()函數(shù)用法
  • python實(shí)現(xiàn)跨excel sheet復(fù)制代碼實(shí)例
  • python 解壓、復(fù)制、刪除 文件的實(shí)例代碼
  • python pptx復(fù)制指定頁的ppt教程
  • python如何實(shí)現(xiàn)復(fù)制目錄到指定目錄
  • linux 下python多線程遞歸復(fù)制文件夾及文件夾中的文件

標(biāo)簽:石家莊 梅州 昆明 西寧 文山 浙江 錫林郭勒盟 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何用python實(shí)現(xiàn)復(fù)制粘貼功能》,本文關(guān)鍵詞  如,何用,python,實(shí)現(xiàn),復(fù)制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何用python實(shí)現(xiàn)復(fù)制粘貼功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何用python實(shí)現(xiàn)復(fù)制粘貼功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 德钦县| 凤城市| 恩施市| 琼结县| 荥经县| 团风县| 盐山县| 甘孜县| 婺源县| 轮台县| 双桥区| 东莞市| 肇源县| 沾益县| 宁都县| 宜丰县| 平舆县| 射洪县| 云梦县| 高密市| 海城市| 昌都县| 砚山县| 虞城县| 仲巴县| 福海县| 海门市| 报价| 隆昌县| 广灵县| 罗平县| 汶上县| 林甸县| 皋兰县| 南木林县| 南京市| 泌阳县| 晋宁县| 金川县| 公主岭市| 永康市|