python年⽉⽇时分秒的格式数据怎么换算成秒_使⽤python获取视频时长并将秒转化为时。。。
获取当前py⽂件同级⽬录以及⼦⽬录下的所有视频的时长(此处代码写的是mp4,其他格式请将mp4改为其他格式后⾃测),把下⾯这长代码保存为py后,放到你的视频的⽬录下执⾏即可输出视频的时长。
废话少数说,上码:
# -*- coding: utf-8 -*-
def time_convert(seconds):
"""
将秒换成合适的时间,如果超过⼀分钟就换算成"分钟:秒",如果是⼩时,就换算成"⼩时:分钟:秒"单位换算
"""
print(f'时间换算{seconds}')
M,H = 60,3600
if seconds < M:
return f'00:00:0{seconds}' if seconds < 10 else f'00:00:{str(seconds)}'
elif seconds < H:
_M = int(seconds/M)
_S = int(seconds%M)
return f'00:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}'
else:
_H = int(seconds/H)
_M = int(seconds%H/M)
_S = int(seconds%H%M)
return f'{f"0{_H}" if _H < 10 else str(_H)}:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}'
def get_video_times(video_path):
"""
pip install moviepy
获取指定的视频时长
"""
from moviepy.editor import VideoFileClip
video_clip = VideoFileClip(video_path)
durantion = video_clip.duration
ader.close()
video_ader.close_proc()
return durantion
def get_current_path():
"""
获取当前⽂件所在的⽬录/获取当前路径
"""
import os
return os.path.abspath(os.path.dirname(__file__)) # 获取当前py⽂件所在⽂件夹的路径
def get_video_duration(root_path):
"""
获取指定⽬录下以及⽬录下的所有⼦⽬录内的mp4⽂件的视频时长
"""
import os
for root, dirs, files in os.walk(root_path):
# 递归遍历当前py⽬录下的所有⽬录及⽂件,⽐如遍历到/a/aa/,则root='/a/aa/aaa/',dir=root路径下的所有⽂件夹名称,dir=root路径下的所有⽂件的名称
# print(root) # 当前所在路径
# print(dirs) # 当前所在路径下的所有⽬录名
# print(files) # 当前所在路径下的所有⽂件名
for file_name in files:
if dswith('.mp4'):
duration = time_convert(get_video_times(os.path.join(root,file_name)))
print(f'{file_name} - {duration}')
def run():
import os
path = os.path.abspath(os.path.dirname(__file__)) # 获取当前py⽂件所在⽬录的路径
get_video_duration(path)
if __name__ == "__main__":
run()
效果图:
其中最主要代码是获取视频时长的这⼀段:
def get_video_times(video_path):
"""
pip install moviepy
获取指定的视频时长,单位是秒
"""
学python看谁的视频比较好
from moviepy.editor import VideoFileClip
video_clip = VideoFileClip(video_path)
durantion = video_clip.duration
ader.close()
video_ader.close_proc()
return durantion
然后再根据获取到的秒数转换成HH:mm:ss:
def time_convert(seconds):
"""
将秒换成合适的时间,如果超过⼀分钟就换算成"分钟:秒",如果是⼩时,就换算成"⼩时:分钟:秒"单位换算
"""
print(f'时间换算{seconds}')
M,H = 60,3600
if seconds < M:
return f'00:00:0{seconds}' if seconds < 10 else f'00:00:{str(seconds)}'
elif seconds < H:
_M = int(seconds/M)
_S = int(seconds%M)
return f'00:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}'
else:
_H = int(seconds/H)
_M = int(seconds%H/M)
_S = int(seconds%H%M)
return f'{f"0{_H}" if _H < 10 else str(_H)}:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}'
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论