Python新手求助:如何用datetime模块求和视频时长列表?
使用datetime模块求和视频总时长
实现思路
datetime.timedelta是专门处理时间间隔(时长)的类,支持直接做加法运算。我们只需要把每个「时:分:秒」格式的字符串拆解为小时、分钟、秒的整数,转换成timedelta对象后累加即可,最终timedelta会自动将超过24小时的部分转换为天数。
完整代码
from datetime import timedelta youtube_time = ['23:15:02', '23:03:19', '18:52:23', '20:26:46', '57:41:07', '51:45:11', '47:20:26', '43:24:26', '127:41:49'] total_duration = timedelta() # 初始化总时长为0时0分0秒 for time_str in youtube_time: # 拆分字符串为时分秒并转为整数 hours, minutes, seconds = map(int, time_str.split(':')) # 创建单条视频时长对象并累加到总时长 total_duration += timedelta(hours=hours, minutes=minutes, seconds=seconds) print(total_duration) # 输出结果: 17 days, 5:30:29
代码细节解释
- 导入工具类:从
datetime模块导入timedelta,它能直接存储和计算时长。 - 初始化总时长:空的
timedelta对象默认代表0时长,作为累加的初始值。 - 遍历处理每个时间字符串:
split(':')把字符串按冒号分割成三个部分,比如'23:15:02'会拆成['23', '15', '02']。map(int, ...)把拆分出的字符串转成整数,对应小时、分钟、秒的数值。- 用得到的数值创建
timedelta对象,直接通过+=累加到总时长里。
- 自动格式化输出:最终的
total_duration会自动以「X days, H:M:S」的形式展示,完全符合需求。
内容的提问来源于stack exchange,提问作者maximcoder13
相关产品推荐
相关产品推荐

