Skip to content

Instantly share code, notes, and snippets.

@geekgogo
Created August 10, 2020 01:12
Show Gist options
  • Save geekgogo/c754ea57a8e5af79499009cb4ca2a81d to your computer and use it in GitHub Desktop.
Save geekgogo/c754ea57a8e5af79499009cb4ca2a81d to your computer and use it in GitHub Desktop.
获取视频的大小和时长
# coding=utf-8
import os
from moviepy.editor import VideoFileClip
import datetime
def get_filesize(filename):
u"""
获取文件大小(M: 兆)
"""
file_byte = os.path.getsize(filename)
return sizeConvert(file_byte)
def get_file_times(filename):
u"""
获取视频时长(s:秒)
"""
clip = VideoFileClip(filename)
file_time = timeConvert(clip.duration)
return file_time
def sizeConvert(size): # 单位换算
K, M, G = 1024, 1024 ** 2, 1024 ** 3
if size >= G:
return str(round(size / G, 2)) + 'G'
elif size >= M:
return str(round(size / M, 2)) + 'M'
elif size >= K:
return str(round(size / K, 2)) + 'K'
else:
return str(size) + 'Bytes'
def timeConvert(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
path = input('请输入目录名称:')
belong = input('请输入类别名称:')
video_list = os.listdir('%s/%s' % (os.getcwd(), path))
number = 1
for i in video_list:
t = datetime.datetime.now()
now = datetime.datetime.strftime(t,'%y-%m-%d %H:%M:%S')
#belong = '__export__.apt_classify_1_1f184d34'
addr = 'http://101.69.228.205/ap/%s' % i
title = '第%d节' % number
#name = '%s%d' % (title.split(' ')[0],number)
number += 1
print(i)
size = get_filesize('%s/%s' % (os.getcwd(),i))
duration = get_file_times('%s/%s' % (os.getcwd(),i))
temp = '"pass","base.user_root",%s,"base.user_root","%s","%s","%s","%s","%s"' % (now,belong,now,addr,title,duration + ' ' + size)
#with open('video_list.csv', 'a') as f:
# f.write(temp + '\n')
#os.system('sudo mv "%s/video/%s" /usr/share/nginx/html/apt/' % (os.getcwd(), i))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment