下面的python3代码不能正常打印双轨信息请帮忙修改代码import osimport reimport subprocessimport openpyxlimport mathfrom openpyxlstyles import Font PatternFill Alignment# 视频格式supported_formats = mp4 avi mkv wmv
问题出在处理多音轨的代码上,需要对每个音轨进行单独处理。以下是修改后的代码:
处理多音轨情况
audio_bitrate = [] audio_sampling_rate = [] audio_lang = [] audio_info_len = len(audio_info) for i in range(audio_info_len // 3): audio_bitrate.append(audio_info[i * 3]) audio_sampling_rate.append(audio_info[i * 3 + 1]) audio_lang.append(audio_info[i * 3 + 2]) if audio_info_len % 3 != 0: # 处理多余的音轨信息 audio_bitrate.append('') audio_sampling_rate.append('') audio_lang.append('') for i in range(len(audio_bitrate)): if audio_bitrate[i] == '': audio_bitrate[i] = ' / ' if audio_sampling_rate[i] == '': audio_sampling_rate[i] = ' / ' ws.cell(row=row, column=9, value=audio_bitrate[0]) ws.cell(row=row, column=10, value=audio_sampling_rate[0]) if len(audio_bitrate) > 1: ws.cell(row=row, column=11, value='双轨') else: ws.cell(row=row, column=11, value=audio_lang[0]) for i in range(1, len(audio_bitrate)): row += 1 ws.cell(row=row, column=1, value='') ws.cell(row=row, column=2, value='') ws.cell(row=row, column=3, value='') ws.cell(row=row, column=4, value='') ws.cell(row=row, column=5, value='') ws.cell(row=row, column=6, value='') ws.cell(row=row, column=7, value='') ws.cell(row=row, column=8, value='') ws.cell(row=row, column=9, value=audio_bitrate[i]) ws.cell(row=row, column=10, value=audio_sampling_rate[i]) ws.cell(row=row, column=11, value=audio_lang[i]) ws.cell(row=row, column=12, value='')
其中,处理多余的音轨信息的代码为:
if audio_info_len % 3 != 0: # 处理多余的音轨信息 audio_bitrate.append('') audio_sampling_rate.append('') audio_lang.append('') for i in range(len(audio_bitrate)): if audio_bitrate[i] == '': audio_bitrate[i] = ' / ' if audio_sampling_rate[i] == '': audio_sampling_rate[i] = ' / '
如果音轨信息不是3的倍数,则说明有多余的信息,需要进行处理。将多余的信息用空字符串填充,然后在后面的代码中使用“/”进行拼接。如果音频码率或采样率为空,则将其替换为“/”。然后使用一个循环将每个音轨信息单独写入一行。
原文地址: https://www.cveoy.top/t/topic/bekU 著作权归作者所有。请勿转载和采集!