pyautowin的使用感受
使用pyautowin研究股票自动化交易已经有一段时间了,目前基础功能已经完成,可以来讲一下自己的感受了。(本文主要针对Windows操作系统,Linux图形界面还未曾尝试)
我是查了资料之后才知道,原来GUI的界面还能够被pyautowin来操作,我是闻所未闻的。
就拿官网的例子来讲,只需要数行python代码,就能够打开记事本程序,并保存一个文件,你敢想?
1 | from pywinauto.application import Application |
安装pyautowin
1 | pip install pyautowin |
如果报错缺少某个包的话,只要再pip install
那个包就行了。
第一步
使用pyautowin的第一步操作就是连接你想要自动化的GUI程序,可以使用命令
1 | import pyautowin |
exe_path
就是你的GUI程序,比方说我要操作股票客户端,那么我的exe_path
的值为C:\\cfjc_dlwt\xiadan.exe
,即客户端程序路径。
接下来app
这个变量就包含了所有我要操作的信息。
第二步
一个GUI程序,它可以由不同控件组成,比方说,树形控件、菜单、按钮、下拉框、工具条、状态栏等等。如何区别不同控件,并获取相关控件的属性呢?答案是Spy++
。当然,类似功能的软件也有很多,只是我个人的选择罢了。
以前一直看到Windows系统上有这么一个内置的程序,但从来不知道它的用途,而且还取名为Spy(间谍的意思)。使用了之后才知道,原来它是专门用来获取GUI相关的信息的软件。
点击第一个望远镜图标,然后拖动查找工具里的靶心,移到你想要观察的GUI控件上,会有黑色框提示具体位置,然后就能获取相关的控件信息。我们最关心的当然是控件ID了,点击确定,在常规选项卡里,就有控件ID,不过那是十六进制数,需要转化成十进制来使用。
第三步
比方说我要获取某个控件的属性,执行命令
1 | grid = app.top_window().window( |
这只是其中最常用的命令之一,如果想要实现自动化操作就要参考官方文档。
总结
pyautowin结合Spy++
基本可以完成所有的GUI操作,股票自动化交易中还有很多细节的地方,需要对交易软件以及python有基本的了解。总之,有了pyautowin之后,妈妈再也不用担心我的学习了,堪称懒人的福音。