重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用pyautogui模块截屏使用的就是screenshot()方法,这个方法的作用就是截取当前的屏幕图像并且返回一个图片文件对象,而这个图片文件对象用的是pil库中的image对象,示例如下:
成都创新互联公司是一家专业从事网站制作、成都网站建设、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
img = pyautogui.screenshot()
这个方法不传递任何参数进去的时候就是默认截取整个屏幕,也就是按照屏幕大小而不是窗口大小去截图。截图完毕之后返回的这个文件对象就相当于是存在剪切板之上,还需要用save()方法将其保存在文件路径中才可以,代码如下:
img.save(‘img.jpg’)
而pyautogui模块中操作模块的方法除了截图之外还有图片和屏幕匹配的功能,需要调用的就是locateCenterOnScreen()方法。这个方法的作用就是根据图片像素点以及屏幕像素点去进行匹配,也就是通过大小和颜色判断。
而这个方法返回的则是匹配的图片在当前屏幕中的坐标点,当屏幕上的内容发生变化,就需要去重新再调用一次这个方法才能够匹配到正确返回内的图像了
由于在我的一个程序中想要添加一个截图功能,今天看一下利用Python怎样截图,功能实现都挺简单了,直接上代码
from PIL import ImageGrab
im = ImageGrab.grab()
im.save(addr,'jpeg')
很简单的几行代码就实现了我要的功能,PIL(Python Image Library)是Python的一个图形库,需要自己下载安装,im = ImageGrab.grab()这行代码实现截图功能,可以带参数,指定要截取图片的坐标位置,不带参数默认全屏截图,im.save(addr,'jpeg')是保存截取的图片,第一个参数是保存路径,第二个参数是图片格式
Python中有split()和os.path.split()两个函数,具体作用如下:
split():拆分字符串,通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
os.path.split():按照路径将文件名和路径分割开
一、函数说明
1、split()函数
语法:str.split(str="",num=string.count(str))[n]
参数说明:
str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
2、os.path.split()函数
语法:os.path.split('PATH')
参数说明:
1.PATH指一个文件的全路径作为参数:
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 win32com.client import Dispatch, DispatchEx
import pythoncom
from PIL import ImageGrab, Image
import uuid
def excel_catch_screen(filename, sheetname, screen_area, img_name=False):
""" 对excel的表格区域进行截图——用例:excel_catch_screen(ur"D:\Desktop\123.xlsx", "Sheet1", "A1:J10")"""
pythoncom.CoInitialize() # excel多线程相关
if name == ' main ':
excel_catch_screen(r"C:\Users\huangat\Downloads\2019-04-08_2019-04-21_yunying.xlsx", "Sheet", "A1:J6")