pyautogui
if pyautogui.locateOnScreen('abc2.png.png'):print('找到了')
else:
print('没找到')
各位大佬找不到图片干吗,不会打印没找到 本帖最后由 很纯很暧昧 于 2024-9-14 10:44 编辑
import pyautogui
import time
if pyautogui.locateOnScreen('abc2.png'):
print('找到了')
else:
print('没找到')
你好,鱼油!你这个代码看上去没有什么明显错误,但有可能是以下几个原因导致找不到图片:
1. **图片未更新**:可以尝试确保截图是最新的,并且路径是正确的。
2. **屏幕分辨率或缩放因素**:确保截图和实际显示的一致。
3. **图片格式或名称错误**:检查图片文件名是否正确,例如 "abc2.png.png" 是否有重复的 "png"。
4. **延迟加载**:有可能屏幕上的元素还没加载出来,可以尝试加个延迟:
import pyautogui
import time
time.sleep(2)# 加个延迟,等2秒
if pyautogui.locateOnScreen('abc2.png'):
print('找到了')
else:
print('没找到')
试试这些方法,如果有问题可以再来问哦!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 我想找不到图片的情况下,输出找不到,为什么它不输出没找到 很纯很暧昧 发表于 2024-09-14 10:47
我想找不到图片的情况下,输出找不到,为什么它不输出 ...
你好,鱼油!如果找不到图片却没有输出“没找到”,可能是因为有异常情况导致程序没有正常执行到`else`语句。你可以通过以下步骤逐步找出问题:
1. **确保图片路径正确**:确认你的图片文件名和路径都正确。
2. **加入调试信息**:在代码中加入一些打印语句,帮助了解程序是否按预期执行。
3. **使用try-except捕获异常**:捕获可能的异常,确保程序不会因异常中断。
下面是修改后的代码,加入了调试信息和异常捕获:
import pyautogui
import time
try:
print("程序开始执行")
time.sleep(2)# 加个延迟,等2秒
location = pyautogui.locateOnScreen('abc2.png')
print("图片检测完成")
if location:
print('找到了')
else:
print('没找到')
except Exception as e:
print(f"发生错误:{e}")
这样可以帮助你找出程序执行过程中的问题。如果图片确实不在屏幕上,应该能看到“没找到”的输出。如果还是没有输出,请检查你的IDE或执行环境是否有其他问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 abc2.png 应该与程序放在同一目录下,并且确保文件名(包括扩展名)正确,能够正常打开。如果 abc2.png 不在同一目录下,必须指明文件所在的路径。
if pyautogui.locateOnScreen('.\\abc2.png'):
print('找到了')
else:
print('没找到')
我现在用相对路径指明了图片所在位置,把 abc2.png 与程序放在同一目录下,再试试看。 smallwh 发表于 2024-9-14 22:03
abc2.png 应该与程序放在同一目录下,并且确保文件名(包括扩展名)正确,能够正常打开。如果 abc2.png 不 ...
加了一个 confidence=0.9 能找到,但是如果没找到,它不会输出,没找到,会报错
import pyautogui
if pyautogui.locateOnScreen('QQ.png', confidence=0.9):
print('找到了')
else:
print('没找到')
FishC 发表于 2024-9-14 10:47
你好,鱼油!如果找不到图片却没有输出“没找到”,可能是因为有异常情况导致程序没有正常执行到`else` ...
大佬IDE或执行环境是否有其他问题,这个怎么看呀,加了一个confidence=0.9 能找到图片,但是如果没找到,还是不会输出没找import pyautogui
import time
try:
print("程序开始执行")
time.sleep(2)# 加个延迟,等2秒
location = pyautogui.locateOnScreen('QQ.png', confidence=0.9)
print("图片检测完成")
if location:
print('找到了')
else:
print('没找到')
except Exception as e:
print(f"发生错误:{e}")
到 很纯很暧昧 发表于 2024-09-15 09:57
大佬IDE或执行环境是否有其他问题,这个怎么看呀,加 ...
你好,鱼油!你已经在代码中加入了调试信息和异常捕获,这很有帮助。为了进一步诊断问题,我们可以再做些增强:
1. 确认屏幕截图功能是否正常:
- 确认屏幕截图功能可以正常工作,必要时手动截取屏幕看看是否有图像。
2. 输出`location`变量,确认其值:
- 比如`print(f"location 的值是: {location}")`,了解 locateOnScreen 返回了什么。
3. 检查 PyAutoGUI 的依赖库:
- PyAutoGUI 需要依赖 OpenCV 才能使用 `confidence` 参数,确保已经安装 `opencv-python` 库:
pip install opencv-python
以下是增强后的代码示例:
import pyautogui
import time
try:
print("程序开始执行")
time.sleep(2)
location = pyautogui.locateOnScreen('QQ.png', confidence=0.9)
print("图片检测完成")
print(f"location 的值是: {location}")
if location:
print('找到了')
else:
print('没找到')
except Exception as e:
print(f"发生错误:{e}")
增加了输出 `location` 变量的值,可以进一步确认 locateOnScreen 的返回值。
此外,你提到了IDE和执行环境的问题,可以尝试以下检查:
1. **确保IDE的控制台输出正常**:
- 使用简单的`print`语句,确认打印输出是否一直正常工作。
2. **确保pyautogui基础功能正常**:
- 例如,简单测试鼠标移动或截图功能:
import pyautogui
print("当前鼠标位置:", pyautogui.position())
pyautogui.screenshot("test_screenshot.png")
print("截图已保存")
3. **更新 PyAutoGUI**:
- 确保 PyAutoGUI 及其依赖库是最新版本:
pip install --upgrade pyautogui opencv-python
通过这些步骤应该能够进一步厘清问题所在。如果问题依然存在,可以考虑重新安装 PyAutoGUI 以及其依赖库。希望这些建议能帮到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2024-9-15 09:58
你好,鱼油!你已经在代码中加入了调试信息和异常捕获,这很有帮助。为了进一步诊断问题,我们可以再做 ...
看来要重新装了 很纯很暧昧 发表于 2024-09-15 10:19
看来要重新装了
你好,鱼油!在重新安装软件之前,也可以尝试以下几个步骤,看能否解决问题:
1. **更新库**:确保`pyautogui`及其依赖库(如`pillow`)都是最新的版本。
pip install --upgrade pyautogui pillow
2. **运行简单测试**:写一个简单的程序,验证`pyautogui`的基本功能,例如截图和鼠标控制。
import pyautogui
import time
# 截屏测试
screenshot = pyautogui.screenshot()
screenshot.save('test.png')
print("截屏保存成功")
# 移动鼠标测试
pyautogui.moveTo(100, 100, duration=1)
print("鼠标移动成功")
3. **检查屏幕缩放比例**:确保系统显示设置中的“缩放与布局”设置为100%(原始比例)。
4. **调试信息**:在原代码中增加更多打印信息,以便更详细地了解程序的执行路径。
import pyautogui
import time
try:
print("程序开始执行")
time.sleep(2)# 加个延迟,等2秒
location = pyautogui.locateOnScreen('QQ.png', confidence=0.9)
print(f"图片检测结果: {location}")
if location:
print('找到了')
else:
print('没找到')
except Exception as e:
print(f"发生错误:{e}")
如果以上方法都不起作用,可能是环境问题,重新安装`pyautogui`和`pillow`可能是一个解决办法。祝你成功!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 修改前报错的原因是没有找到图片文件,修改后报错的原因是没有在屏幕上找到图片。我查阅了 pyautogui 的官方文档,发现有一个更新影响了 locateOnScreen 函数。
The Locate Functions
NOTE: As of version 0.9.41, if the locate functions can’t find the provided image, they’ll raise ImageNotFoundException instead of returning None.
提示:自 0.9.41 版本起,如果用来定位图片位置的函数找不到提供的图片,它们将会引发 ImageNotFoundException 错误,而不是返回 None 。
原文出处:https://pyautogui.readthedocs.io/en/latest/screenshot.html
因此,你必须使用 try 语句捕获异常,不能使用 if 语句
import pyautogui
print("程序开始执行")
try:
location = pyautogui.locateOnScreen('QQ.png', confidence=0.9)
print("图片检测完成")
except ImageNotFoundException:
print('没找到')
else:
print('找到了') smallwh 发表于 2024-9-15 11:04
修改前报错的原因是没有找到图片文件,修改后报错的原因是没有在屏幕上找到图片。我查阅了 pyautogui 的官 ...
谢谢大师,你辛苦了,完美解决 smallwh 发表于 2024-9-15 11:04
修改前报错的原因是没有找到图片文件,修改后报错的原因是没有在屏幕上找到图片。我查阅了 pyautogui 的官 ...
import pyautogui
import keyboard
keyboard.wait('esc')
大师有没有空,随便帮我看下扫码枪问题,运行上面代码,只能扫十几个码就挂了,就算加延迟也不行, 抱歉,我可能回答不了你的问题。
我没接触过扫描枪;你只给出了三行代码,不能执行扫描的功能;就 python 崩溃的问题来看,错误很可能发生在底层。
页:
[1]