python打开程序一闪而过就消失

python打开程序一闪而过就消失
结尾有pause


import os
import pyautogui
import cv2
import operator
import time
def findcolor(stax, stay, endx, endy, res):
    he, we = int(endx - stax),int(endy - stay)
    im = pyautogui.screenshot(region=(stax, stay, he, we))
    im.save("autoprt.png")
    im = cv2.imread("autoprt.png")
    for a in range(we):
        for b in range(he):
            if all(operator.eq(im[a,b], res)):
                moveto(stax + b, stay + a)
                os.remove("autoprt.png")
                return stax + b, stay + a
def delay(tim):
    time.sleep(tim/1000)
def keypress(kb):
    pyautogui.keyDown(kb)
    delay(300)
    pyautogui.keyUp(kb)
while True:
        pyautogui.doubleClick(findcolor(720, 146, 1010, 623, [0, 255, 0]))
        delay(100)
        pyautogui.doubleClick( findcolor(720, 146, 1010, 623, [223, 255, 38]))
os.system("pause")


一闪而过是什麽个效果???
while True不都死循环么

用ide打开,然后跑一遍吧。将错误信息截图发一下,不然也不知道什么情况吖

img

你这个程序是干什么的我看里面有一个没有定义的变量,在我的编辑器里面它能运行不闪退

这个程序是截屏后扫描到绿色或青绿色时就双击鼠标
你的程序之所以能正常运行,是因为截的屏中没有这两种色,所以findcolor函数返回的坐标是None,None,只在当前鼠标位置双击
要正常运行,move改成pyautogui.moveTo
如果还不行,那就把while True中的内容改成pyautogui.doubleClick() 看看会不会闪退。

你在最后加一个input("按enter退出")

不闪退 甚至无限在我电脑乱点🤦‍♂️

闪退的实际原因就在于程序内代码全部执行完毕的速度非常快,几毫秒就执行完了。而且执行完之后会自动关闭解释器窗口,看起来就是一闪而过的样子。

解决方法为使用IDLE或者是Pycharm这种集成开发环境去运行python程序,这样在运行时就会调用命令行窗口而不是解释器窗口来执行它们了。在执行完毕之后不会自动将窗口给关闭掉,而是需要使用者手动回车敲击一下才表示程序结束执行。

参考一下https://www.jb51.net/article/163754.htm

排查一下