gpt4 book ai didi

python - 如何正确转换列表的输出值以将它们用作函数内的参数?

转载 作者:可可西里 更新时间:2023-11-01 10:10:52 24 4
gpt4 key购买 nike

我正在尝试用 python 编写一个脚本,该脚本在屏幕上搜索 RGB 中的特定颜色,获取像素坐标,然后将这些坐标发送到点击函数以点击它。到目前为止,这是我的代码:

from PIL import ImageGrab
import win32api, win32con

def click(x,y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

color = (10,196,182)
session = False
match = False

while(True):
screen = ImageGrab.grab()
found_pixels = []
for i, pixel in enumerate(screen.getdata()):
if pixel == color:
match = True
found_pixels.append(i)
break
else:
match = False

width, height = screen.size
found_pixels_coords = [divmod(index, width) for index in found_pixels]

if session == False and match == True:
click(found_pixels_coords)
print("Match_Found")
session = True
if session == True and match == False:
session = False

如何转换 founds_pixels_coords 的输出以在 click(x,y) 函数中使用它?我还得到了相反的输出值,(y,x) 而不是 (x,y),我不明白为什么。

这是我的控制台输出,以防我完全错了:

Traceback (most recent call last):
File "test2.py", line 28, in <module>
click(found_pixels_coords)
TypeError: click() missing 1 required positional argument: 'y'

编辑: click(*found_pixels_coords[0]) 按照@martineau 的建议似乎解决了 missing argument 错误。我还通过定义 click(y,x) 来绕过反转值。但是,如果对此有任何适当的解决方案,我们将不胜感激。

最佳答案

由于 found_pixels_coords 是一个列表(尽管它永远不会包含一组以上的坐标),下面是如何使用其中的一组坐标(如果有任何匹配):


.
.
.
if session == False and match == True:
click(*found_pixels_coords[0]) # <== Do it like this.
print("Match_Found")
session = True
if session == True and match == False:
session = False
.
.
.

关于python - 如何正确转换列表的输出值以将它们用作函数内的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com