首页 > 编程语言 >python获取指定视频分辨率并移动到相应的文件夹中

python获取指定视频分辨率并移动到相应的文件夹中

时间:2024-04-08 17:26:36浏览次数:11  
标签:python 分辨率 list 文件夹 file print path dir

import os
import shutil
from moviepy.editor import VideoFileClip

# 获取所有文件
def getAllFiles(fire_dir):
    filepath_list = []
    for root,folder_names,file_names in os.walk(fire_dir):
        for file_name in file_names:
            file_path = root+os.sep+file_name
            filepath_list.append(file_path)
            print(file_path)
    print(filepath_list)
    return filepath_list

#获取指定文件夹下所有MP4文件的时长
def getFileNames(path,houzui=".mp4"):
    return [os.path.join(path,f) for f in os.listdir(path) if f.endswith(houzui)]


#获取视频时长
def getTimeLong(videoFile):

    clip = VideoFileClip(videoFile)
    sicahng = clip.duration
    print(sicahng) # seconds
    clip.close()
    return sicahng

#获取视频分辨率
def getKuanAndGao(videoFile):

    clip = VideoFileClip(videoFile)
    fenbianlv = clip.size # 获取分辨率
    print(fenbianlv)
    clip.close()
    return fenbianlv

#如果不存在就创建
def createDir(file_dir):
    # 如果不存在文件夹,就创建
    if not os.path.isdir(file_dir):
        os.mkdir(file_dir)

#移动文件到指定文件夹下的yiqiege目录
def moveFile(zhidingmulu,file_path):
    # # 将已经切割的移动到已经切割文件夹gen_dir
    # zhumulu = str(gen_dir).strip(gen_dir.split("\\")[-1])
    # # 创建文件夹
    # qiegewenjianjia = r"%s\yiqiege" % zhumulu
    # print("切割文件夹名字:")
    # print(qiegewenjianjia)
    # createDir(qiegewenjianjia)
    try:
        # 移动文件到文件夹目录中
        shutil.move(file_path, zhidingmulu)
        print("移动文件%s到已切割文件夹" % file_path)
    except Exception as e:
        print("移动出错:%s" % str(e))

#获取指定路径下MP4文件的时长
def mp4FIleTime(path,houzui=".mp4"):
    file_list = getFileNames(path,houzui)
    for one in file_list:
        try:
            one_shichang = getTimeLong(one)
            print("%s文件的时长为 %s 秒"%(one,one_shichang))
            zhengshu = int(one_shichang)
            zhengshijia1 = zhengshu+1
            #移动到指定时间的文件夹
            xiaoyu1miao = "%s/大于%s秒小于%s秒"% (path,str(zhengshu),str(zhengshijia1))
            createDir(file_dir=xiaoyu1miao)
            moveFile(zhidingmulu=xiaoyu1miao, file_path=one)

        except Exception as e:
            print("%s文件的时长失败,原因:%s"%(one,str(e)))
            #移动到指定时间的文件夹
            jieshishibai = "%s/解析失败"% path
            createDir(file_dir=jieshishibai)
            moveFile(zhidingmulu=jieshishibai, file_path=one)
            continue

#获取指定路径下MP4文件的分辨率
def mp4FIleFenBianLv(path,houzui=".mp4"):
    file_list = getFileNames(path,houzui)
    for one in file_list:
        try:
            one_fenbianlv = getKuanAndGao(one)
            print("%s文件的分辨率为 %s "%(one,one_fenbianlv))

            #移动到指定时间的文件夹
            xiaoyu1miao = "%s/%sx%s"% (path,one_fenbianlv[0],one_fenbianlv[1])
            createDir(file_dir=xiaoyu1miao)
            moveFile(zhidingmulu=xiaoyu1miao, file_path=one)

        except Exception as e:
            print("%s文件的分辨率失败,原因:%s"%(one,str(e)))
            #移动到指定时间的文件夹
            jieshishibai = "%s/解析失败"% path
            createDir(file_dir=jieshishibai)
            moveFile(zhidingmulu=jieshishibai, file_path=one)
            continue



if __name__ == '__main__':
    filePath =r"F:\003-104"
    mp4FIleFenBianLv(path=filePath,houzui=".mp4")

 

标签:python,分辨率,list,文件夹,file,print,path,dir
From: https://www.cnblogs.com/jingzaixin/p/18121768

相关文章

  • python下载包过慢 pip 设置镜像
    通过修改配置文件Windows上的配置方式:打开pip.ini文件,通常位于C:\Users\YourUsername\pip\pip.ini,如果文件不存在可以创建它。在pip.ini文件中添加以下内容:[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simpleLinux/macOS上的配置方式:打开或创建~/.pi......
  • linux 环境下 elasticsearch 及 python 相关库的使用
    -elasticsearch是什么?elasticsearch简称es,是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。-安装1、下载官网下载地址2、解压tarzxvfelasticsearch-8.13.0-linux-x86_64.tar.gz-C/usr/local/3、解决JDK依赖问题新版本的es压缩......
  • Python大创项目参考 智能家居控制(半成品且未参赛)建议用于电气、计科、通信相关专业—
    (优质长文警告⚠️,全文包含代码共计22000+字,完整阅读时间较长)智能家居行业是指通过互联网、物联网、人工智能等先进技术将家庭设备和设施连接起来,实现智能化控制和管理的新兴产业。本项目参考了github开源“博联智能家居”,采用博联旗下鸿雁系列智能插座和路由,算是二次开发。目......
  • Python实现 时域和频域 数值演变——blog7
    数值演变是指在一定时间段内,数值发生变化或发展的过程。在数值演变过程中,数值可以增加、减少、保持稳定,甚至发生剧烈波动。数值演变可以应用于各个领域,例如经济学、生态学、物理学等。在经济学中,数值演变可以描述经济指标(如GDP、通货膨胀率、失业率等)的变化情况,帮助分析经济发......
  • python WAV音频文件处理—— (1)读写WAV文件
    https://realpython.com/python-wav-files/#visualize-audio-samples-as-a-waveform了解WAV文件格式WAV是一种波形音频文件格式(WaveformAudioFileFormat)。虽然是一种古老的格式(九十年代初开发),但今天仍然可以看到这种文件。WAV具有简单、可移植、高保真等特点。WA......
  • Python学习笔记-001
    记录一下重学python,虽然python老早就接触了,更多的还是停留在语法层面,老c++了。最近打算从头开始系统拉一下python的基础,先预计8天学完。后面还打算系统学一下Numpy,Pandas和Matplotlib。python基础教程python简介检查是否安装python,终端输入python--versionpython是一种解释......
  • python data:image/jpeg;base64为网址的图片改如何下载
    网址以data开头的文件,这里采用base64进行编码。它叫做dataURI scheme,是一种网页优化的手段。让我们直接把图像的内容崁入网页里面,减少页面的请求data:表示协议image/jpg:数据类型编码方式:base64可以通过解码的方式下载图片importbase64defdownload_auth_img(self,im......
  • Github图床 Python Typora
    1.搭建Github图床1.1.创建或者选择一个Public仓库1.2.获取GithubToken2.Typora结合图床当Typora需要使用这个图床的时候,Picgo是很好的解决方案,但是还可以通过其他的方式来进行上传,比如python脚本。2.1.upload-img.pyimportrequestsimportbase64importj......
  • Android的CameraX获得相机支持分辨率的方法
    如题,方法如下:androidx.camera.core.Cameracamera1=cameraProvider.bindToLifecycle(/*lifecycleOwner=*/this,cameraSelector,analysisUseCase);Camera2CameraInfocamera2Info=Camera2CameraInfo.from(camera1.getCameraInfo());Size[]size=cam......
  • 局域网共享文件夹怎么加密?局域网共享文件夹加密方法介绍
    在企业局域网中,共享文件夹扮演着重要的角色。为了保护数据安全,我们需要加密保护局域网共享文件夹。那么,局域网共享文件夹怎么加密?下面我们来了解一下吧。局域网共享文件夹加密方法局域网共享文件夹加密推荐使用共享文件夹加密超级大师,软件操作简单,功能强大,支持批量加密共享......