介紹導(dǎo)入的庫(kù)
當(dāng)代碼中導(dǎo)入了特定的庫(kù),它會(huì)使得在代碼中可以使用該庫(kù)所提供的功能和工具。以下是導(dǎo)入的兩個(gè)庫(kù)及其作用的解釋:
import os:
os(Operating System)是Python標(biāo)準(zhǔn)庫(kù)之一,提供了與操作系統(tǒng)交互的功能。它允許您在代碼中執(zhí)行各種與文件和目錄操作相關(guān)的任務(wù),例如創(chuàng)建、刪除、移動(dòng)文件,獲取文件屬性,以及與操作系統(tǒng)進(jìn)行交互等。在這個(gè)代碼中,os庫(kù)被用于執(zhí)行文件和目錄的遍歷操作,從而計(jì)算指定文件夾中視頻文件的總時(shí)長(zhǎng)。
import moviepy.editor as mp:
moviepy是一個(gè)用于處理視頻和音頻的Python庫(kù),它提供了一組功能豐富的工具,可以用來(lái)編輯、剪輯、合并和轉(zhuǎn)換視頻和音頻文件。其中,moviepy.editor模塊提供了視頻編輯的基本功能,例如加載視頻文件、獲取視頻時(shí)長(zhǎng)等。在這個(gè)代碼中,mp是moviepy.editor的別名,通過(guò)這個(gè)別名,我們可以使用moviepy庫(kù)的功能來(lái)讀取視頻文件并獲取視頻的時(shí)長(zhǎng)。
總結(jié)
os庫(kù)允許代碼與操作系統(tǒng)進(jìn)行文件和目錄操作,而moviepy.editor庫(kù)則允許代碼加載視頻文件并執(zhí)行視頻編輯和處理的相關(guān)操作。這兩個(gè)庫(kù)的結(jié)合使得代碼能夠遍歷指定文件夾中的視頻文件并計(jì)算總時(shí)長(zhǎng)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-623038.html
代碼
代碼即注釋,每一行也提供了注釋:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-623038.html
# 導(dǎo)入必要的庫(kù)
import os
import moviepy.editor as mp
# 定義一個(gè)函數(shù),用于計(jì)算指定文件夾中視頻的總時(shí)長(zhǎng)
def get_total_duration(folder_path, video_formats=['mp4', 'avi']):
total_duration = 0 # 用于存儲(chǔ)視頻總時(shí)長(zhǎng)的變量(單位:秒)
# 遞歸地遍歷指定文件夾及其子文件夾
for root, dirs, files in os.walk(folder_path):
for file in files:
# 檢查文件是否具有指定格式的視頻文件
if file.lower().endswith(tuple(video_formats)):
file_path = os.path.join(root, file) # 獲取視頻文件的完整路徑
try:
# 使用 moviepy 的 VideoFileClip 加載視頻文件
clip = mp.VideoFileClip(file_path)
total_duration += clip.duration # 將視頻時(shí)長(zhǎng)加入總時(shí)長(zhǎng)
except Exception as e:
# 如果處理視頻時(shí)發(fā)生錯(cuò)誤,則打印錯(cuò)誤信息
print(f"處理 {file_path} 時(shí)出錯(cuò): {e}")
return total_duration # 返回所有視頻總時(shí)長(zhǎng)(單位:秒)
# 定義一個(gè)函數(shù),用于將總秒數(shù)轉(zhuǎn)換為時(shí)、分、秒格式
def seconds_to_hours_minutes_seconds(seconds):
hours, remainder = divmod(seconds, 3600)
minutes, seconds = divmod(remainder, 60)
return int(hours), int(minutes), int(seconds)
# 腳本的入口點(diǎn)
if __name__ == "__main__":
# 指定包含視頻的文件夾路徑
folder_path = r"你的文件路徑"
# 調(diào)用 get_total_duration 函數(shù)計(jì)算文件夾中視頻的總時(shí)長(zhǎng)
total_duration = get_total_duration(folder_path, video_formats=['mp4', 'avi'])
# 將總時(shí)長(zhǎng)從秒數(shù)轉(zhuǎn)換為時(shí)、分、秒格式
total_hours, total_minutes, total_seconds = seconds_to_hours_minutes_seconds(total_duration)
# 以人類可讀的格式顯示總時(shí)長(zhǎng)
if total_hours > 0:
print(f"文件夾中所有視頻的總時(shí)長(zhǎng)為: {total_hours} 小時(shí) {total_minutes} 分鐘 {total_seconds} 秒")
print(f"文件夾中所有視頻的總時(shí)長(zhǎng)為: {total_hours * 60 + total_minutes} 分鐘 {total_seconds} 秒")
else:
print(f"文件夾中所有視頻的總時(shí)長(zhǎng)為: {total_minutes} 分鐘 {total_seconds} 秒")
到了這里,關(guān)于python統(tǒng)計(jì)mp4/avi視頻的時(shí)長(zhǎng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!