from os import path import cv2 def file_info(data_folder: str, file_name: str, file_ext: str): """ Receive file type, frame count and frames per second. The last two are always None for images. :param data_folder: path to data folder :param file_name: file name :param file_ext: file extension :return: file type, frame count, frames per second """ # determine file type if file_ext in ['.jpg', '.png']: ftype = 'image' elif file_ext in ['.mp4']: ftype = 'video' else: raise ValueError # determine frames and fps for video files if ftype == 'image': frames = None fps = None else: file_path = path.join(data_folder, file_name + file_ext) video = cv2.VideoCapture(file_path) frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT)) fps = video.get(cv2.CAP_PROP_FPS) video.release() # return values return ftype, frames, fps