当前位置: 首页 > news >正文

20240110-Python实现读取当前文件夹下所有视频名称和时长并生成一张表

代码

import os
import cv2
import csv# 获取当前文件夹路径
folder_path = os.getcwd()  # 如果当前文件夹就是目标文件夹可以直接使用 './',否则修改为目标文件夹的路径# 获取当前文件夹中所有视频文件的名称
video_files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f)) and f.endswith(('.mp4', '.avi', '.mov', '.mkv'))]# 创建并打开一个 CSV 文件
output_file = 'video_info.csv'
with open(output_file, 'w', newline='', encoding='utf-8') as csvfile:csv_writer = csv.writer(csvfile)csv_writer.writerow(["视频文件名", "时长"])# 遍历视频文件列表,获取视频时长并写入 CSV 文件for video_file in video_files:video_path = os.path.join(folder_path, video_file)try:cap = cv2.VideoCapture(video_path)fps = cap.get(cv2.CAP_PROP_FPS)frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))duration_seconds = frame_count / fps# 转换为小时、分钟、秒格式hours = int(duration_seconds // 3600)minutes = int((duration_seconds % 3600) // 60)seconds = int(duration_seconds % 60)# 格式化为两位数的时间duration_formatted = f"{hours:02d}:{minutes:02d}:{seconds:02d}"csv_writer.writerow([video_file, duration_formatted])except Exception as e:print(f"无法处理文件 {video_file}: {e}")print(f"已生成文件:{output_file}")

使用Atuo-py-to-exe插件打包成EXE

安装:pip install auto-py-to-exe
安装完成之后,就可以在cmd中输入:auto-py-to-exe来启动程序了
如果报错:‘auto-py-to-exe’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。可以直接找到可执行文件双击运行即可。

插件位置

相关文章:

  • 达梦数据库 模式 研究
  • 【大数据进阶第三阶段之Datax学习笔记】阿里云开源离线同步工具Datax类图
  • 【WinForms 窗体】常见的“陷阱”
  • SqueezeNet:通过紧凑架构彻底改变深度学习
  • MySQL之数据类型建表以及约束
  • JQuery异步加载表格选择记录
  • 如何上传苹果ipa安装包?
  • R语言【base】——sample():随机取样和排列
  • K8S存储卷和数据卷
  • 常见类型的yaml文件如何编写?--kind: Job|CronJob
  • C 语言关于sizeof() 和 strlen()区别?
  • Java的输入和输出处理(二)字符篇
  • Java使用IText生产PDF时,中文标点符号出现在行首的问题处理
  • 第二证券:股指维持震荡格局 关注光伏设备等板块
  • B-树和B+树的特性,以及B+树在数据库中的应用
  • 【附node操作实例】redis简明入门系列—字符串类型
  • css系列之关于字体的事
  • Cumulo 的 ClojureScript 模块已经成型
  • Javascripit类型转换比较那点事儿,双等号(==)
  • javascript 总结(常用工具类的封装)
  • java第三方包学习之lombok
  • Python十分钟制作属于你自己的个性logo
  • Python学习之路16-使用API
  • Shell编程
  • Spring Cloud Feign的两种使用姿势
  • swift基础之_对象 实例方法 对象方法。
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 入手阿里云新服务器的部署NODE
  • 小李飞刀:SQL题目刷起来!
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #includecmath
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (windows2012共享文件夹和防火墙设置
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (六)激光线扫描-三维重建
  • (四)库存超卖案例实战——优化redis分布式锁
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Unity3DUnity3D在android下调试
  • .libPaths()设置包加载目录
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net FrameWork总结
  • .net 流——流的类型体系简单介绍
  • .NET连接数据库方式
  • .NET中 MVC 工厂模式浅析
  • .Net中间语言BeforeFieldInit
  • /usr/bin/env: node: No such file or directory
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @FeignClient注解,fallback和fallbackFactory
  • @vue/cli 3.x+引入jQuery
  • [2544]最短路 (两种算法)(HDU)
  • [8-27]正则表达式、扩展表达式以及相关实战