Osama Abbas Osama Abbas - 5 months ago 10
Python Question

Python: Print only one time inside a loop

I have a code where I want capture a video from a camera. I want to use Logging library of Python to get messages on the shell or export them to a text file.

Here is a part of my code where inside the while loop I want to print Camera Opened Successfully

import numpy as np
import cv2
import logging as log

cap = cv2.VideoCapture('5.mpg')

while True:

ret, image = cap.read()

if ret == True:
log.warning('Camera Opened Successfully')

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
clahe = cv2.createCLAHE(clipLimit = 15.0, tileGridSize=(8,8))
gray1 = clahe.apply(gray)


but what I get in the shell is this:



until I terminated the running script. Any idea on how to make it print only once.

Answer
import numpy as np
import cv2
import logging as log

cap = cv2.VideoCapture('5.mpg')
hasOpened = False

while True:

    ret, image = cap.read()

    if ret and not hasOpened:
        log.warning('Camera Opened Successfully')
        hasOpened = True

If you want to break out of the loop after printing, follow Matt's answer. This option will continue in the loop and only print once.

Comments