第三课 使用Python进行屏幕截图


第三课 使用Python进行屏幕截图
《Hacking with Python》系列课程第三课,今天的主题是用Python进行屏幕截图并上传到FTP。首先我们要介绍一下wxPython库。
wxPython介绍




wxPython是一个创建桌面GUI应用的跨平台工具包(toolkit)
- 官网:https://www.wxpython.org/
- 入门:https://www.wxpython.org/pages/overview/#hello-world
- 安装: pip3 install wxpython
今天我们使用它来进行截图操作,代码如下:
import wx
w = wx.App()
screen = wx.ScreenDC()
size = screen.GetSize()
bmap = wx.Bitmap(size[0],size[1])
memo = wx.MemoryDC(bmap)
memo.Blit(0,0,size[0],size[1],screen,0,0)
bmap.SaveFile("grabbed.png", wx.BITMAP_TYPE_PNG)
我们创建了一个屏幕对象,并把当前屏幕保存到保存到位图中。下一步,我们会有通过FTP保存到服务器的需求,先介绍一下使用ftplib库。
ftplib介绍
ftplib是Python自带的FTP 协议客户端,不需要安装。
文档:https://docs.python.org/zh-cn/3/library/ftplib.html
我在本地开启了一个FTP服务器,现在使用ftplib进行连接。
下图可以看到,我们连接并列出了FTP服务器上的文件




根据文档,我们需要通过storbinary函数往FTP服务器上传文件,代码如下:
sess_ = ftplib.FTP("localhost", "flypython", "flypython")
file_ = open("grabbed.png", "rb")
sess_.storbinary("STOR grabbed.png", file_)
file_.close()
sess_.quit()
完整的截屏上传程序
最后我们把截图和上传FTP连起来,代码如下:
1 import wx
2 import os
3 import ftplib
4
5 w = wx.App()
6 screen = wx.ScreenDC()
7 size = screen.GetSize()
8 bmap = wx.Bitmap(size[0],size[1])
9 memo = wx.MemoryDC(bmap)
10 memo.Blit(0,0,size[0],size[1],screen,0,0)
11
12 bmap.SaveFile("grabbed.png", wx.BITMAP_TYPE_PNG)
13
14 sess_ = ftplib.FTP("localhost","flypython", "flypython")
15 file_ = open("grabbed.png", "rb")
16 sess_.storbinary("STOR grabbed.png", file_)
17
18 file_.close()
19 sess_.quit()
运行效果:




截图文件已经成功上传




此系列课程代码: https://github.com/flypythoncom/Hacking-with-Python
关注我们的微信公众号,获取最新的教程信息
原创文章,作者:flypython,如若转载,请注明出处:http://flypython.com/video/414.html
您必须登录才能发表评论。