Python:在X秒后结束基于时间的循环
我的代码应该是鼠标左键每“y”秒在屏幕上的一个设置位置舔一次,该位置工作正常:Python:在X秒后结束基于时间的循环,python,python-3.x,loops,time,infinite-loop,Python,Python 3.x,Loops,Time,Infinite Loop,我的代码应该是鼠标左键每“y”秒在屏幕上的一个设置位置舔一次,该位置工作正常: import pyautogui def autoclick(): threading.Timer(0.1, autoclick).start() pyautogui.click(1230, 618) 问题在于结束循环 我想问一个时间: ScriptTime = int(input("Type the time in Seconds the Script should run: ")) 然后尝试将“Scri
import pyautogui
def autoclick():
threading.Timer(0.1, autoclick).start()
pyautogui.click(1230, 618)
问题在于结束循环
我想问一个时间:
ScriptTime = int(input("Type the time in Seconds the Script should run: "))
然后尝试将“ScripTime”绑定到计数器以结束“autoclick()”
导入时间
t_end=time.time()+1*ScriptTime
当time.time()结束时:
自动单击()
我猜这与“线程”和“时间”模块的使用有关,也与那些通信不好的模块有关。但我昨天开始使用Python,因此非常感谢您的帮助
(在执行过程中没有错误,它只是永远继续,不会停止,而且由于我的鼠标被锁定,在屏幕上单击,我可以X out,也不能使用CTRL+C或ALT+F4,因为在执行过程中我在不同的窗口中。)我想我明白了为什么它会永远运行下去 在尝试导入
pyautogui
时,为我引发了一个ImportError
,我确实导入了threading
模块
以下是threading.timer中的docstring:
Call a function after a specified number of seconds:
t = Timer(30.0, f, args=None, kwargs=None)
t.start()
t.cancel() # stop the timer's action if it's still waiting
所以问题是(可能)对autoclick函数的一次调用会导致它无限循环该点,而不是在while
循环中
因此,我建议您将autoclick
功能替换为:
def click():
pyautogui.click(1230, 618)
def autoclick():
threading.Timer(0.1, click).start()
或者这个:
def autoclick():
threading.Timer(0.1, pyautogui.click, args=(1230, 618))
旁白:您从哪里获得的pyautogui
模块
无所谓;而且,pip是一个比我意识到的更强大的工具
def autoclick():
threading.Timer(0.1, pyautogui.click, args=(1230, 618))