Python 脚本使用 MediaInfo 统计文件大小、视频音频信息并写入 Excel
以下是一个使用 Python 3 和 mediainfo 库来统计文件大小、视频音频 info 并将结果写入 Excel 的脚本:
import os
import mediainfo
import openpyxl
# 获取指定目录下的所有文件
def get_all_files(directory):
all_files = []
for root, dirs, files in os.walk(directory):
for file in files:
all_files.append(os.path.join(root, file))
return all_files
# 获取文件大小
def get_file_size(file_path):
return os.path.getsize(file_path)
# 获取视频音频 info
def get_media_info(file_path):
media_info = mediainfo.MediaInfo.parse(file_path)
video_info = {}
audio_info = {}
for track in media_info.tracks:
if track.track_type == 'Video':
video_info['Codec'] = track.codec
video_info['Height'] = track.height
video_info['Width'] = track.width
video_info['Frame rate'] = track.frame_rate
elif track.track_type == 'Audio':
audio_info['Codec'] = track.codec
audio_info['Channels'] = track.channel_s
audio_info['Sampling rate'] = track.sampling_rate
return {'Video': video_info, 'Audio': audio_info}
# 写入 Excel
def write_to_excel(file_path, file_size, video_info, audio_info, sheet):
row = [file_path, file_size, video_info['Codec'], video_info['Height'], video_info['Width'],
video_info['Frame rate'], audio_info['Codec'], audio_info['Channels'], audio_info['Sampling rate']]
sheet.append(row)
# 主程序
if __name__ == '__main__':
directory = 'C:/test' # 指定目录
all_files = get_all_files(directory)
wb = openpyxl.Workbook() # 创建一个新的 Excel 文件
sheet = wb.active
sheet.title = 'Media Info'
headers = ['File Path', 'File Size', 'Video Codec', 'Height', 'Width', 'Frame rate',
'Audio Codec', 'Channels', 'Sampling rate']
sheet.append(headers)
for file in all_files:
if os.path.isfile(file):
file_size = get_file_size(file)
media_info = get_media_info(file)
write_to_excel(file, file_size, media_info['Video'], media_info['Audio'], sheet)
wb.save('Media Info.xlsx') # 保存 Excel 文件
使用方法:
- 将以上脚本保存为
media_info.py文件; - 在命令行中执行
pip install mediainfo openpyxl安装mediainfo和openpyxl库; - 修改脚本中的
directory变量为要统计的目录; - 在命令行中执行
python media_info.py,等待程序完成; - 在脚本所在目录下会生成一个名为
Media Info.xlsx的 Excel 文件,其中包含了所有文件的统计信息。
原文地址: https://www.cveoy.top/t/topic/mz0A 著作权归作者所有。请勿转载和采集!