import cv2
import time
import numpy as np
# 1. 获取每个视频的长度时间, 时长,单位为秒
duration = 2;
# 2. 获取设备的号0号是摄像头 , 有的可能是1
cap = cv2.VideoCapture(0)
# 获取视频播放界面长宽 四舍五入
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH) + 0.5)
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT) + 0.5)
# 定义编码器 创建 VideoWriter对象 用于生成mp4格式的视频文件 mp4格式文件较小
fourcc = cv2.VideoWriter_fourcc(*'XVID') # mp4v用小写
# 3. 记录开始录制的时间
last_start_time = time.time()
baocun_time = time.gmtime()
now = time.strftime("%Y年%m月%d日 %H_%M_%S",baocun_time)
# 4. 开始的时候 需要有一个默认 输出视频的位置
# 参1 是文件路径和名字 参2 编码格式 参3帧率 参4宽高
out = cv2.VideoWriter(str(now) + '.avi', fourcc, 20.0, (width ,height),True)
# 5. 开始录制 两个条件 摄像头开启 和 没有按下q键退出
while cap.isOpened() and ((cv2.waitKey(10) & 0xFF) != ord('q')):
baocun_time = time.gmtime()
now = time.strftime("%Y年%m月%d日 %H_%M_%S",baocun_time)
# 判断是否需要分割视频文件
if time.time() - last_start_time >= duration:
# 获取一个一个视频的长度,如果超过我们一开始输入的视频长度,那么就存储关闭这个文件,重建建立一个
# 关闭上一个文件
out.release()
# 新建一个
out = cv2.VideoWriter(str(now) + '.avi', fourcc, 20.0, (width ,height),True)
# 重新计时 要更新时间last_start_time
last_start_time = time.time()
# 读取一帧图像数据
ret, frame = cap.read()
# 获取成功 ret为True
if ret == 1:
# 输出当前帧
out.write(frame)
# 显示当前图片
cv2.imshow('frame', frame)
#是否有手动操作
#cv2.waitKey(1)
else:
# 获取失败 跳出循环 退出
break
# 释放资源
out.release()
cap.release()
cv2.destroyAllWindows()
import os
import time
# 利用os.walk遍历搜素路径
def search_file(path):
dst_files = os.walk(path)
for i in dst_files:
for each_dir in i[1]:
if find_file in each_dir:
print(f'Find dir :\t{i[0]}\\{each_dir}')
for each_file in i[2]:
if find_file in each_file:
print(f'Find file :\t{i[0]}\\{each_file}')
if __name__ == '__main__':
find_file = input('请输入你要找的文件信息 :')
print('搜素中...')
t1 = time.time()
# 搜素路径,默认为D盘
all_path = ['D:\\']
for each_path in all_path:
search_file(each_path)
t2 = time.time()
# 搜素时长
find_time = t2 - t1
# 打印结果
print('\n{:.2f}s\n搜素完毕!'.format(find_time))