溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python怎么獲取視頻文件的大小和時長

發(fā)布時間:2023-03-31 11:38:11 來源:億速云 閱讀:118 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python怎么獲取視頻文件的大小和時長”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“Python怎么獲取視頻文件的大小和時長”文章能幫助大家解決問題。

1. 前置知識

這里一共需要用到3個Python庫,分別是os、pandas、moviepy。

  • ① os:用于獲取某個目錄下的文件和文件大??;

  • ② pandas:用于將提取到的信息,保存到Excel中;

  • ③ moviepy:用于獲取視頻文件中的時長;

注意:pandas和moviepy屬于第三方庫,因此需要我們提前使用如下命令進(jìn)行安裝。

pip install pandas
pip install moviepy

2. 完整代碼

① 導(dǎo)入所有庫

import os
import pandas as pd
from moviepy.editor import VideoFileClip

② 獲取指定目錄下符合條件的文件

useful_dir = []
for i in os.listdir():
    if i.endswith("wmv"):
        useful_dir.append(i)
useful_dir

結(jié)果如下:

Python怎么獲取視頻文件的大小和時長

③ 自定義時間轉(zhuǎn)化函數(shù)

def time_convert(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)}'

由于下面介紹的VideoFileClip()方法,獲取時長的單位是秒。因此,需將秒換成合適的"時分秒"格式。若時間超過一分鐘,換算成"分鐘:秒",若超過一小時,就換算成"小時:分鐘:秒"格式。

④ 獲取文件大小和時長

x = []
y = []
for i in useful_dir:
    dir_size = str(round(os.path.getsize(i)/1024/1024,1)) + "M"
    clip = VideoFileClip(i)
    dir_time = time_convert(clip.duration)
    x.append(dir_size)
    y.append(dir_time)
df = pd.DataFrame({"文件大小":x,"文件時長":y})
df

結(jié)果如下:

Python怎么獲取視頻文件的大小和時長

⑤ 將得到的數(shù)據(jù)存儲到Excel中

df.to_excel("info.xlsx",index=False)

最終效果如圖所示:

Python怎么獲取視頻文件的大小和時長

關(guān)于“Python怎么獲取視頻文件的大小和時長”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI