Sebanyak 3 perpustakaan Python diperlukan di sini, iaitu os, panda, dan moviepy.
① os: digunakan untuk mendapatkan fail dan saiz fail dalam direktori tertentu
② panda: digunakan untuk mengekstrak maklumat , simpan ke; Excel;
③ moviepy: digunakan untuk mendapatkan tempoh dalam fail video; adalah perpustakaan pihak ketiga, jadi kami perlu memasangnya terlebih dahulu menggunakan arahan berikut.
① Import semua perpustakaan
pip install pandas pip install moviepy
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
Disebabkan kaedah yang diperkenalkan di bawah, unit untuk mendapatkan tempoh ialah detik. Oleh itu, detik perlu ditukar kepada format "jam, minit dan saat" yang sesuai. Jika masa melebihi satu minit, ia ditukar kepada "minit: saat"; jika ia melebihi satu jam, ia ditukar kepada format "jam: minit: saat".
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)}'
Hasilnya adalah seperti berikut: 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
Kesan akhir adalah seperti yang ditunjukkan dalam gambar:
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan saiz dan tempoh fail video dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!