需要一个python3编写的使用mediainfo统计文件大小、视频音频info并写入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/93q 著作权归作者所有。请勿转载和采集!