from win32com.client import Dispatch, DispatchEx
創(chuàng)新互聯(lián)公司專注于貴德網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供貴德營銷型網(wǎng)站建設(shè),貴德網(wǎng)站制作、貴德網(wǎng)頁設(shè)計、貴德網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造貴德網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供貴德網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
import pythoncom
from PIL import ImageGrab, Image
import uuid
def excel_catch_screen(filename, sheetname, screen_area, img_name=False):
""" 對excel的表格區(qū)域進行截圖——用例:excel_catch_screen(ur"D:\Desktop\123.xlsx", "Sheet1", "A1:J10")"""
pythoncom.CoInitialize() # excel多線程相關(guān)
if name == ' main ':
excel_catch_screen(r"C:\Users\huangat\Downloads\2019-04-08_2019-04-21_yunying.xlsx", "Sheet", "A1:J6")
Python獲取電腦截圖有多種方式,具體如下:
PIL中的ImageGrab模塊
windows API
PyQt
pyautogui
使用Selenium截圖
使用PIL中的ImageGrab模塊簡單,但是效率有點低,截屏一次需0.5s。
調(diào)用windows API,速度快但是使用較復(fù)雜,這里就不做詳細介紹了,因為有更好用的PyQt。
PyQt比調(diào)用windows API簡單很多,而且有windows API的很多優(yōu)勢,比如速度快,可以指定獲取的窗口,即使窗口被遮擋。需注意的是,窗口最小化時無法獲取截圖。
首先需要獲取窗口的句柄。
程序會打印窗口的hwnd和title,有了title就可以進行截圖了。
pyautogui是比較簡單的,但是不能指定獲取程序的窗口,因此窗口也不能遮擋,不過可以指定截屏的位置,0.04s一張截圖,比PyQt稍慢一點,但也很快了。
使用Selenium只能進行WEB程序截圖
由于在我的一個程序中想要添加一個截圖功能,今天看一下利用Python怎樣截圖,功能實現(xiàn)都挺簡單了,直接上代碼
from
PIL
import
ImageGrab
im
=
ImageGrab.grab()
im.save(addr,'jpeg')
很簡單的幾行代碼就實現(xiàn)了我要的功能,PIL(Python
Image
Library)是Python的一個圖形庫,需要自己下載安裝,im
=
ImageGrab.grab()這行代碼實現(xiàn)截圖功能,可以帶參數(shù),指定要截取圖片的坐標(biāo)位置,不帶參數(shù)默認全屏截圖,im.save(addr,'jpeg')是保存截取的圖片,第一個參數(shù)是保存路徑,第二個參數(shù)是圖片格式
我知道的截圖用的是save_screenshot()這個方法。
如果要對具體某個元素截圖,可以先截好圖,然后獲取這個元素的位置和尺寸,再用PIL的Image模塊對圖片進行截圖,起點就是元素位置,寬高就是元素尺寸。
Python中有split()和os.path.split()兩個函數(shù),具體作用如下:
split():拆分字符串,通過指定分隔符對字符串進行切片,并返回分割后的字符串列表(list)
os.path.split():按照路徑將文件名和路徑分割開
一、函數(shù)說明
1、split()函數(shù)
語法:str.split(str="",num=string.count(str))[n]
參數(shù)說明:
str:表示為分隔符,默認為空格,但是不能為空('')。若字符串中沒有分隔符,則把整個字符串作為列表的一個元素
num:表示分割次數(shù)。如果存在參數(shù)num,則僅分隔成 num+1 個子字符串,并且每一個子字符串可以賦給新的變量
[n]:表示選取第n個分片
注意:當(dāng)使用空格作為分隔符時,對于中間為空的項會自動忽略
2、os.path.split()函數(shù)
語法:os.path.split('PATH')
參數(shù)說明:
1.PATH指一個文件的全路徑作為參數(shù):
2.如果給出的是一個目錄和文件名,則輸出路徑和文件名
3.如果給出的是一個目錄名,則輸出路徑和為空文件名
二、分離字符串
string = ""
1.以'.'為分隔符
print(string.split('.'))
['www', 'gziscas', 'com', 'cn']
2.分割兩次
print(string.split('.',2))
['www', 'gziscas', 'com.cn']
3.分割兩次,并取序列為1的項
print(string.split('.',2)[1])
gziscas
4.分割兩次,并把分割后的三個部分保存到三個文件
u1, u2, u3 =string.split('.',2)
print(u1)——?www
print(u2)——?gziscas
print(u3) ——com.cn
三、分離文件名和路徑
import os
print(os.path.split('/dodo/soft/python/'))
('/dodo/soft/python', '')
print(os.path.split('/dodo/soft/python'))
('/dodo/soft', 'python')
四、實例
str="hello boy[]byebye"
print(str.split("[")[1].split("]")[0])
from?PIL?import?ImageGrab
im?=?ImageGrab.grab()?
#可以指定要截取圖片的坐標(biāo)位置,不帶參數(shù)默認全屏截圖
im.save(addr,'jpeg')
#第一個參數(shù)是保存路徑,第二個參數(shù)是圖片格式
需要先下載一個PIL圖形庫