获取视频时长和文件大小

import os
from moviepy.editor import VideoFileClip
import pymysql

file_dir = ".\\video"  # 定义文件目录


class FileCheck(object):

    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)
        print(clip.duration)
        file_time = self.timeConvert(clip.duration)
        clip.reader.close()
        clip.audio.reader.close_proc()
        return file_time

    def sizeConvert(self, size):  # 单位换算
        K, M, G = 1024, 1024 ** 2, 1024 ** 3
        if size >= G:
            return str(size / G) + 'G Bytes'
        elif size >= M:
            return str(size / M) + '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 '%s:%s:%s'%('00', '00', '%02d' % int(size))
        if size < H:
            return '%s:%s:%s' % ('00', '%02d' % int(size / M), '%02d' % int(size % M))
        else:
            hour = '%02d' % int(size / H)
            mine = '%02d' % int(size % H / M)
            second = '%02d' % int(size % H % M)
            tim_srt = '%s:%s:%s' % (hour, mine, second)
            return tim_srt


class video_time(object):
    def __init__(self):
        # self.db = pymysql.connect(host='localhost', port=3306, database='abc', user='root',
        #                           password='root',
        #                           charset='utf8')
        self.db = pymysql.connect(host='115.238.111.198', port=3306, database='spider_yu', user='spider',
                                  password='Kangce@0608', charset='utf8')
        self.cursor = self.db.cursor()

        self.video_time()

    def video_time(self):
        videos = FileCheck()
        video_list = os.listdir(file_dir)
        for video_name in video_list:
            names = '.\\video\\' + video_name
            video_time = videos.get_file_times(names)
            print(video_name)
            if '.' in video_time:
                video_time = video_time.split('.')[0]
            self.cursor.execute(
                'update youjiankang set videoTime="{}" where videoUrl="{}"'.format(video_time, video_name))
            self.db.commit()
            print('video_time', video_time)


if __name__ == "__main__":
    video_time()

  

import os
from moviepy.editor import VideoFileClip
import pymysql

file_dir = ".\\video" # 定义文件目录


class FileCheck(object):

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)
print(clip.duration)
file_time = self.timeConvert(clip.duration)
clip.reader.close()
clip.audio.reader.close_proc()
return file_time

def sizeConvert(self, size): # 单位换算
K, M, G = 1024, 1024 ** 2, 1024 ** 3
if size >= G:
return str(size / G) + 'G Bytes'
elif size >= M:
return str(size / M) + '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 '%s:%s:%s'%('00', '00', '%02d' % int(size))
if size < H:
return '%s:%s:%s' % ('00', '%02d' % int(size / M), '%02d' % int(size % M))
else:
hour = '%02d' % int(size / H)
mine = '%02d' % int(size % H / M)
second = '%02d' % int(size % H % M)
tim_srt = '%s:%s:%s' % (hour, mine, second)
return tim_srt


class video_time(object):
def __init__(self):
# self.db = pymysql.connect(host='localhost', port=3306, database='abc', user='root',
# password='root',
# charset='utf8')
self.db = pymysql.connect(host='115.238.111.198', port=3306, database='spider_yu', user='spider',
password='Kangce@0608', charset='utf8')
self.cursor = self.db.cursor()

self.video_time()

def video_time(self):
videos = FileCheck()
video_list = os.listdir(file_dir)
for video_name in video_list:
names = '.\\video\\' + video_name
video_time = videos.get_file_times(names)
print(video_name)
if '.' in video_time:
video_time = video_time.split('.')[0]
self.cursor.execute(
'update youjiankang set videoTime="{}" where videoUrl="{}"'.format(video_time, video_name))
self.db.commit()
print('video_time', video_time)


if __name__ == "__main__":
video_time()

转载于:https://www.cnblogs.com/yoyo1216/p/10553317.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值