Python代码统计视频文件大小并转换为更大单位

import os
import subprocess
import openpyxl

# 安装openpyxl模块
# pip install openpyxl

# 安装mediainfo命令行工具
# sudo apt-get install mediainfo

# 需要处理的视频文件夹
video_folder = '/home/115/up'

# 输出Excel文件名
excel_file = '/home/115/up/video_info.xlsx'

# 创建Excel文件
wb = openpyxl.Workbook()
ws = wb.active
ws.title = 'Video Info'

# 设置表头
headers = ['文件名', '格式', '分辨率', '码率', '帧率', '时长', '文件大小']
for col, header in enumerate(headers, start=1):
    ws.cell(row=1, column=col, value=header)

# 定义单位换算函数
def convert_size(size_bytes):
    '''将文件大小从字节转换为更大的单位'''
    for unit in ['B', 'KB', 'MB', 'GB', 'TB']:
        if size_bytes < 1024.0:
            return f'{size_bytes:.2f} {unit}'
        size_bytes /= 1024.0

# 初始化文件大小变量
total_size = 0

# 获取视频文件列表
video_files = [os.path.join(video_folder, f) for f in os.listdir(video_folder) if f.endswith('.mp4')]

# 遍历所有视频文件,获取视频信息并写入Excel文件
for row, video_file in enumerate(video_files, start=2):
    # 获取文件名和大小
    file_name = os.path.basename(video_file)
    file_size = os.path.getsize(video_file)

    # 统计文件大小
    total_size += file_size

    # 转换文件大小为更大的单位
    file_size = convert_size(file_size)

    # 使用mediainfo获取视频信息
    result = subprocess.run(['mediainfo', '--Inform=Video;%Format%|%Width%x%Height%|%BitRate/String%|%FrameRate%|%Duration/String3%', video_file], stdout=subprocess.PIPE)
    output = result.stdout.decode().strip()

    # 解析输出结果
    format, resolution, bitrate, framerate, duration = output.split('|')

    # 写入Excel文件
    ws.cell(row=row, column=1, value=file_name)
    ws.cell(row=row, column=2, value=format)
    ws.cell(row=row, column=3, value=resolution)
    ws.cell(row=row, column=4, value=bitrate)
    ws.cell(row=row, column=5, value=framerate)
    ws.cell(row=row, column=6, value=duration)
    ws.cell(row=row, column=7, value=file_size)

# 统计文件夹大小并转换为更大的单位
total_size = convert_size(total_size)

# 写入文件夹大小
ws.cell(row=1, column=8, value='文件夹大小')
ws.cell(row=2, column=8, value=total_size)

# 保存Excel文件
wb.save(excel_file)
print(f'视频信息已保存到 {excel_file}')

代码功能:

  1. 遍历指定文件夹中的所有视频文件(.mp4 格式)。
  2. 使用 mediainfo 命令获取每个视频文件的格式、分辨率、码率、帧率和时长。
  3. 使用 os.path.getsize 函数获取每个视频文件的大小,并使用 convert_size 函数将其转换为 KB、MB、GB 等更大的单位。
  4. 将所有视频文件的信息以及文件大小写入 Excel 文件中。
  5. 在 Excel 文件的最后一列,写入文件夹中所有视频文件大小的总和,并将其转换为更大的单位。

使用说明:

  1. 将代码保存为 .py 文件。
  2. 确保已安装 openpyxlmediainfo 库。
  3. 修改代码中的 video_folderexcel_file 变量,指定要处理的视频文件夹和要保存的 Excel 文件路径。
  4. 运行代码。

注意:

  • 代码中使用了 subprocess.run 函数来执行 mediainfo 命令,需要确保系统中已安装 mediainfo 命令行工具。
  • convert_size 函数可以将文件大小转换为 KB、MB、GB、TB 等单位。
  • 代码会将所有视频文件的总大小写入 Excel 文件的最后一列,并将其转换为更大的单位。
  • 代码中的文件路径和文件名可以根据实际情况进行修改。

其他说明:

  • 该代码可以用于统计各种视频文件的相关信息,例如,可以统计音频文件、图片文件等。
  • 代码可以进一步扩展,例如,可以增加对文件类型的判断,可以将信息写入其他格式的文件等。
  • 使用 openpyxl 库可以方便地操作 Excel 文件,可以根据需要进行进一步的定制。

希望本代码能够帮助您统计视频文件的大小并转换为更大的单位。

Python代码统计视频文件大小并转换为更大单位

原文地址: https://www.cveoy.top/t/topic/mz1m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录