Python无法在鼠标回放程序中创建循环
我正在尝试创建一个python脚本,它可以读取一个数字文本文件,并将每隔一个数字设置为一个x坐标列表,并对y执行相同的操作。然后我尝试创建一个循环,可以使用x和y列表移动鼠标。我是python的新手,不断收到提供的序列必须有2个元素错误。我不知道他们是否认为我做错了什么。 数字列表如下所示: 1234 我的代码是Python无法在鼠标回放程序中创建循环,python,Python,我正在尝试创建一个python脚本,它可以读取一个数字文本文件,并将每隔一个数字设置为一个x坐标列表,并对y执行相同的操作。然后我尝试创建一个循环,可以使用x和y列表移动鼠标。我是python的新手,不断收到提供的序列必须有2个元素错误。我不知道他们是否认为我做错了什么。 数字列表如下所示: 1234 我的代码是 import pyautogui pyautogui.FAILSAFE = True f = open('mouse_log.txt', 'r') coords = [] for
import pyautogui
pyautogui.FAILSAFE = True
f = open('mouse_log.txt', 'r')
coords = []
for line in f:
inftemp = line.strip()
coords.append(inftemp)
xlist = []
ylist = []
xlist.append(coords[::2])
ylist.append(coords[1::2])
temp = 0
for x in coords:
pyautogui.moveTo(xlist[temp],ylist[temp])
temp = temp + 1
回溯(最近一次调用):文件“C:\Users\Kade
Hugh\Desktop\python stuff\MousePlayback.py”,第20行,在
pyautogui.moveTo(xlist[temp],ylist[temp])文件“C:\Users\Kade Hugh\AppData\Local\Programs\Python\Python36\lib\site packages\pyautogui\uuu init\uuuuu.py”,
第611行,在moveTo中
x、 y=\u解压XY(x,y)文件“C:\Users\Kade Hugh\AppData\Local\Programs\Python36\lib\site packages\pyautogui\uuu init\uuuu.py”,
第180行,in xy
raise VALUERROR('提供的序列必须正好有2个元素({0}已收到)。'。格式(len(x)))VALUERROR:
提供的序列必须正好有2个元素(收到3个)
在您的示例中,
coords
是由4个数字组成的列表,xlist
和ylist
是由2个数字组成的列表
在coords
中循环四个元素,每次向temp
添加1。因此,您正在查找xlist[0],ylist[0]
,然后是xlist[1],ylist[1]
,然后是xlist[2],ylist[2]
,然后是xlist[3],ylist[3]
。但是没有xlist[2]
,ylist[2]
,xlist[3]
,或者ylist[3]
,所以如果您试图访问它们,当然会出错
您要做的是循环2次,而不是4次,或者更一般地,循环xlist
和ylist
中的元素数,而不是coords
中的元素数
最干净的方法是直接循环列表,而不是试图找出要循环的数字。唯一棘手的一点是,您有两个单独的列表,您希望在彼此的锁定步骤中循环。但这正是目的:
复制并粘贴实际(完整)异常,不要只是给我们一个模糊的描述。@abarnert just didOK,您给我们的错误消息与您声称的问题不匹配。@abarnert我更改了它以说明我的问题
for x, y in zip(xlist, ylist):
pyautogui.moveTo(x, y)