获取视频时长和文件大小
- 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()