zoukankan      html  css  js  c++  java
  • python 获取目录视频时长,大小

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    
    import os
    import sys
    import re
    import xlwt
    import csv
    from moviepy.editor import *
    #from moviepy.editor import VideoFileClip
    
    file_dir = "/ftpdir/data1/" #定义文件目录
    workbook = xlwt.Workbook(encoding='utf-8')
    worksheet = workbook.add_sheet('Worksheet')
    
    
    class FileCheck():
    
        def __init__(self):
            self.file_dir = file_dir
    
        def get_filesize(self,filename):
            u"""
            获取文件大小(M: 兆)
            """
            file_byte = os.path.getsize(filename)
            return self.sizeConvert(file_byte)
    
        def get_file_times(self,filename):
            u"""
            获取视频时长(s:秒)
            """
            clip = VideoFileClip(filename)
            file_time = self.timeConvert(clip.duration)
            return file_time
    
        def sizeConvert(self,size):# 单位换算
            K, M, G = 1024, 1024**2, 1024**3
            if size >= G:
                a = str(size/G)
                a = str(int(a.split('.')[0]))
    
                return a +'G Bytes'
                #return str(size/G)+'G Bytes'
            elif size >= M:
                a = str(size/M)
                a = str((int(a.split('.')[0])+1))
    
                return a +'M Bytes'
            elif size >= K:
                return str(size/K)+'K Bytes'
            else:
                return str(size)+'Bytes'
    
        def timeConvert(self,size):# 单位换算
            M, H = 60, 60**2
            if size < M:
                return str(size)+u'秒'
            if size < H:
                return u'%s分钟%s秒'%(int(size/M),int(size%M))
            else:
                hour = int(size/H)
                mine = int(size%H/M)
                second = int(size%H%M)
                tim_srt = u'%s小时%s分钟%s秒'%(hour,mine,second)
                return tim_srt
    
        def get_all_file(self):
            u"""
            获取视频下所有的文件
            """
            #for root, dirs, files in os.walk(file_dir):  
                #return files #当前路径下所有非目录子文件
            ds = list(os.walk(file_dir))
            list_a = []
            with open('./data_duration.csv','a',encoding='utf-8') as f:
                for root,dirs,files in ds:
                    for file in files:
                        file_path = '{}/{}'.format(root,file)
                        if re.match('/ftpdir/data1/.*/(d+)(.ts|.mp4)',file_path):
                            a = self.get_file_times(file_path)
                            b = self.get_filesize(file_path)
                            f.write('{}-----{}-----{}
    '.format(file_path,a,b))
    
    
    obj = FileCheck()
    obj_a = obj.get_all_file()
    print(obj_a)
    

      

  • 相关阅读:
    BitTorrent源代码分析
    获取网卡网络流量
    获取进程cpu占用
    Python中的下划线命名规则
    python的内建函数isinstance
    python类
    内建函数print(python3.0)
    小象增强学习课件DQN网络和Q-learning
    11月深度学习班第5课风格变化NeuralStyle
    11月深度学习班第5课图像物体检测:rcnn/fast-rcnn/faster-rcnn
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/10529892.html
Copyright © 2011-2022 走看看