2020년 2월 6일 목요일

Python 폴더 내 모든 wav 파일의 length를 가져와 모두 합치기 (duration 초 누산)

python 3.6.6 에서 확인했습니다.
wave 파일을 읽어서 frame수 / rate를 하면 길이가 sec으로 나옵니다.



#path_dir에 wav파일만 있다고 가정합니다.
#path_dir 에 있는 모든 파일을 읽어서 list에 넣고 length(duration)을 모두 더합니다.

import wave
import contextlib
import os
#import sys

path_dir = '드라이브:/경로/경로/' #경로 끝에 / 꼭 붙이기
file_list =os.listdir(path_dir) #경로 읽어 파일명 리스트 만들기
file_list.sort() #정렬

# 누적값 초기화
acc = 0

for i in file_list:

 with contextlib.closing(wave.open(path_dir + i,'r')) as f:
  frames = f.getnframes()
  rate = f.getframerate()
  duration = frames / float(rate)
  #print(duration)
  acc += duration #누적값

#결과 출력
print (acc)

댓글 없음:

댓글 쓰기