统计文件夹中的mp3时长
import os
from tqdm import tqdm
import re
import eyed3
def get_mp3_duration(file_path):
audio = eyed3.load(file_path)
if audio is None:
return None
return audio.info.time_secs
def catalogName_check(root_in):
'''
调用修改文件夹文字
'''
catalog = os.listdir(root_in)
pattern = r'[^\w\u4e00-\u9fa5,.!?;:、,。!?;:"\'\\‘’“”()()【】《》〈〉-]'
for filename in catalog:
if os.path.isdir(filename):
# file_path = os.path.join(catalog,file)
new_filename = re.sub(pattern,'-',filename)
os.rename(filename,new_filename)
def filename_check(root_in):
'''
调用修改文件名字
'''
pattern = r'[^\w\u4e00-\u9fa5,.!?;:、,。!?;:"\'\\‘’“”()()【】《》〈〉-]'
catalog_list = os.listdir(root)
for catalog in catalog_list:
catalog_path = os.path.join(root,catalog)
if os.path.isdir(catalog_path):
for file in tqdm(os.listdir(catalog_path)):
file_path = os.path.join(catalog_path,file)
new_file_path = re.sub(pattern,'-',file_path)
os.rename(file_path,new_file_path)
root = '.\\'
catalog_list = os.listdir(root)
pattern = r'[^\w\u4e00-\u9fa5,.!?;:、,。!?;:"\'\\‘’“”()()【】《》〈〉-]'
time_dict = {}
catalogName_check(root)
filename_check(root)
for catalog in catalog_list:
if os.path.isdir(catalog):
cnt = 0
for file in tqdm(os.listdir(catalog)):
file_path = os.path.join(catalog,file)
duration = get_mp3_duration(file_path)
cnt += duration
day = f'{int(cnt//60//60//24)}'
hour = f'{int(cnt//60//60 % 24)}'
minute = f'{int(cnt//60 % 60)}'
sec = f'{cnt % 60 :.1f}'
time_dict[catalog] = f'{day}d {hour}h {minute}min {sec}sec'
print(cnt)
# print(f'{catalog}:\t{cnt // (60*60)}h{(cnt % (60*60)//60)}min')
for key,value in time_dict.items():
print(key,'\t',value)
统计单个文件夹中的mp4时长
from moviepy import VideoFileClip
import os
from tqdm import tqdm
root_path = os.getcwd()
curt_path = folder_name
catalog = os.path.join(root_path,curt_path)
pattern = r'[^\w\u4e00-\u9fa5,.!?;:、,。!?;:"\'\\‘’“”()()【】《》〈〉-]'
time_dict = {}
cnt = 0
file_path_list = []
for file in tqdm(os.listdir(catalog)):
file_path_list.append(os.path.join(catalog,file))
for file in tqdm(file_path_list):
if file[-3:] == 'mp4':
clip = VideoFileClip(file)
duration = clip.duration
cnt += duration
day = f'{int(cnt//60//60//24)}'
hour = f'{int(cnt//60//60 % 24)}'
minute = f'{int(cnt//60 % 60)}'
sec = f'{cnt % 60 :.1f}'
time_dict[catalog] = f'{day}d {hour}h {minute}min {sec}sec'
for key,value in time_dict.items():
print(key,value)