PyAutoGUI是一个用于自动化鼠标和键盘操作的Python库。它可以用于模拟鼠标移动、点击、键盘输入等操作,从而实现自动化任务。
以下是一些关于PyAutoGUI的常用功能和示例代码:
🌿安装&导入
# pip install pyautogui
import pyautogui
🌿获取屏幕分辨率
screen_width, screen_height = pyautogui.size()
print(f"屏幕分辨率:{screen_width} x {screen_height}")
# 屏幕分辨率:1920 x 1080
🌿鼠标操作
- 获取鼠标当前位置position
- 鼠标移动到指定位置moveTo
- 点击 单击(左)click / 双击doubleClick / 右击 rightClick / 中键 middleClick
- 鼠标拖拽drag
# 获取鼠标当前位置
x, y = pyautogui.position()
print(f"鼠标当前位置:{x}, {y}")
# 鼠标移动到指定位置
pyautogui.moveTo(100, 100, duration=1.5)
# 在1.5秒内将鼠标移动到(100, 100)位置
# 鼠标点击
pyautogui.click(200, 200) # 单击(200, 200)位置
pyautogui.doubleClick(300, 300) # 双击(300, 300)位置
pyautogui.click() # 单击左键
pyautogui.rightClick() # 单击右键
pyautogui.doubleClick() # 双击左键
# 拖拽鼠标指针到目标点
pyautogui.drag(start_x, start_y, x, y, duration=1)
🌿键盘操作
- keyDown():模拟按键按下
- keyUP():模拟按键松开
- press():模拟一次按键过程,即 keyDown 和 keyUP 的组
- typewrite():模拟键盘输出内容
- 快捷键 hotkey
# 键盘输入
pyautogui.typewrite("Hello, World!") # 输入文本
pyautogui.press("enter") # 模拟按下回车键
# 快捷键
pyautogui.hotkey('ctrl','c') #ctrl+c
# !
pyautogui.keyDown('shift')
pyautogui.press('1')
pyautogui.keyUp('shift')
🌿截图
img = pyautogui.screenshot('screenshot.png')
img.save("./gui_screenshot.png")
🌿查找图像在屏幕上的位置locateOnScreen
image_location = pyautogui.locateOnScreen('image.png')
print(image_location)
🌿弹框
time=pyautogui.confirm('几点了?',buttons=['7.am','11.am','7.pm'])
print(time) # 7.pm
# 警告框
alert=pyautogui.alert(text='警告',title='警告框')
print(alert)
# 密码框
password=pyautogui.password('请输入密码')
print(password)
# 普通输入框
input=pyautogui.prompt('请输入:')
print(input)
🌿自动画图
打开画图软件,运行后鼠标移到画图软件上
# 自动画图
import pyautogui
import time
time.sleep(5)
distance = 200
while distance > 0:
pyautogui.dragRel(distance, 0, duration=0.5) # move right
distance -= 5
pyautogui.dragRel(0, distance, duration=0.5) # move down
pyautogui.dragRel(-distance, 0, duration=0.5) # move left
distance -= 5
pyautogui.dragRel(0, -distance, duration=0.5) # move up
🌿计算器自动计算
以下是一个使用PyAutoGUI实现计算器自动计算的示例代码:
import pyautogui
import time
# 定义计算器按钮的位置
button_positions = {
'0': (x0, y0),
'1': (x1, y1),
'2': (x2, y2),
'3': (x3, y3),
'4': (x4, y4),
'5': (x5, y5),
'6': (x6, y6),
'7': (x7, y7),
'8': (x8, y8),
'9': (x9, y9),
'plus': (x_plus, y_plus),
'minus': (x_minus, y_minus),
'multiply': (x_multiply, y_multiply),
'divide': (x_divide, y_divide),
'equals': (x_equals, y_equals),
'clear': (x_clear, y_clear)
}
# 定义计算器操作
def click_button(button):
position = button_positions.get(button)
if position:
pyautogui.click(position)
time.sleep(0.2)
# 定义计算器输入
def input_expression(expression):
for char in expression:
click_button(char)
# 定义计算器计算
def calculate(expression):
input_expression(expression)
click_button('equals')
result = pyautogui.locateOnScreen('result.png')
if result:
pyautogui.click(result)
time.sleep(0.2)
result_text = pyautogui.screenshot(region=result).convert('L')
return result_text
# 示例使用
result = calculate('2+3')
print('Result:', result)
在上述代码中,我们首先定义了计算器按钮的位置,每个按钮都有一个对应的坐标。然后,我们定义了三个函数:click_button()
用于点击计算器按钮,input_expression()
用于输入表达式,calculate()
用于计算表达式。在calculate()
函数中,我们首先调用input_expression()
函数输入表达式,然后点击"equals"按钮计算结果。最后,我们使用pyautogui.locateOnScreen()
函数来定位结果的位置,并使用pyautogui.screenshot()
函数获取结果的图像,并将其转换为灰度图像。最后,我们打印出计算结果。
请注意,上述代码中的按钮位置需要根据实际计算器界面进行调整,并且需要将结果的截图保存为result.png
文件,并确保该文件与Python脚本在同一目录下。
还有一种方法是通过图像获取定位的更方便,我还不会:
打开电脑自带的计算器
利用截图工具截取4张图,并依次命名
将python程序和计算器一同打开在桌面上
运行python程序
# 自动计算器输入
import pyautogui
x = [0]*4
x[0] = pyautogui.locateCenterOnScreen('7.png')
x[1] = pyautogui.locateCenterOnScreen('+.png')
x[2] = pyautogui.locateCenterOnScreen('5.png')
x[3] = pyautogui.locateCenterOnScreen('=.png')
for i in range(4):
pyautogui.click(x[i])
以下是一些关于 pyautogui 的链接:
官方文档 📍
GitHub 仓库 📍
PyPI 页面 📍
每天学点新东西 day1 - pyautogui语法