Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-04-22 22:25:15
앞으로
2642명이 탐색했습니다.

1. 사전 지식

여기에는 os, pandas, moviepy 총 3개의 Python 라이브러리가 필요합니다.

  • ① os: 특정 디렉터리의 파일 및 파일 크기를 얻는 데 사용됩니다.

  • ② pandas: 추출된 정보를 Excel에 저장하는 데 사용됩니다.

  • 3 moviepy: 비디오의 지속 시간을 얻는 데 사용됩니다.

참고: pandas 및 moviepy는 타사 라이브러리이므로 다음 명령을 사용하여 미리 설치해야 합니다.

pip install pandas
pip install moviepy
로그인 후 복사

2. 전체 코드

① 모든 라이브러리 가져오기

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
로그인 후 복사

결과는 다음과 같습니다.

Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

3 사용자 정의 시간 변환 기능

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;
로그인 후 복사

다음으로 인해 소개VideoFileClip() 메소드, 기간을 구하는 단위는 초입니다. 따라서 초를 적절한 "시, 분, 초" 형식으로 변환해야 합니다. 시간이 1분을 초과하면 "분:초"로 변환되고, 1시간을 초과하면 "시:분:초" 형식으로 변환됩니다.

4 파일 크기 및 기간 가져오기

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
로그인 후 복사

결과는 다음과 같습니다.

Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

⑤ 얻은 데이터를 Excel에 저장합니다

df.to_excel("info.xlsx",index=False)
로그인 후 복사

최종 효과는 그림과 같습니다.

Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

위 내용은 Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿