Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mendapatkan saiz dan tempoh fail video dalam Python?

Bagaimana untuk mendapatkan saiz dan tempoh fail video dalam Python?

WBOY
WBOYke hadapan
2023-04-22 22:25:152633semak imbas

1. Pengetahuan prasyarat

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.

2. Kod lengkap

① Import semua perpustakaan

pip install pandas
pip install moviepy
② Dapatkan fail yang layak dalam direktori yang ditentukan

keputusan adalah seperti berikut:

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
③ Fungsi penukaran masa tersuai

Disebabkan kaedah Bagaimana untuk mendapatkan saiz dan tempoh fail video dalam Python? 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".

④ Dapatkan saiz dan tempoh fail

def time_convert(seconds):
    M,H = 60,3600
    if seconds < M:
        return f&#39;00:00:0{seconds}&#39; if seconds < 10 else f&#39;00:00:{str(seconds)}&#39;
    elif seconds < H:
        _M = int(seconds//M)
        _S = int(seconds%M)
        return f&#39;00:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}&#39;
    else:
        _H = int(seconds//H)
        _M = int(seconds%H//M)
        _S = int(seconds%H%M)
        return f&#39;{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)}&#39;

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
⑤ Simpan data yang diperolehi dalam Excel

Kesan akhir adalah seperti yang ditunjukkan dalam gambar: Bagaimana untuk mendapatkan saiz dan tempoh fail video dalam Python?

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam