修改后的代码如下:

import os
import glob
from natsort import natsorted

dir_path = r'E:\home\up'
output_dir = r'E:\home\up\1'

# 当前文件夹下的所有mp4路径
L = []
for root, dirs, files in os.walk(dir_path):
    files = natsorted(files)
    for file in files:
        if os.path.splitext(file)[1] == '.mp4':
            file_path = os.path.join(root, file)
            L.append(file_path)

# 生成ffmpeg命令
commands = []
for l in L:
    ts_file = os.path.join(os.path.dirname(l), os.path.splitext(os.path.basename(l))[0] + '.ts')
    commands.append(f"ffmpeg -i \"{l}\" -vcodec copy -acodec copy -bsf:v h264_mp4toannexb \"{ts_file}\"")

concat_command = (
    f'ffmpeg -i "concat:{"|".join([os.path.join(os.path.dirname(l), os.path.splitext(os.path.basename(l))[0] + ".ts") for l in L])}" '
    '-acodec copy -vcodec copy -bsf:a aac_adtstoasc '
    f'"{os.path.join(output_dir, os.path.splitext(os.path.basename(L[0]).replace("00", "-", 1))[0][:-1].upper() + ".mp4")}"'
)

# 执行ffmpeg命令
for command in commands:
    os.system(command)

os.system(concat_command)

# 删除ts文件
for ts_file in glob.glob(os.path.join(dir_path, '*.ts')):
    os.remove(ts_file)

# 截取第一个字母之后的字符串,删除之前的数字
for mp4_file in glob.glob(os.path.join(output_dir, '*.mp4')):
    file_name = os.path.basename(mp4_file)
    file_name = file_name.replace('h_', '')
    new_file_name = file_name.lstrip('0123456789')[1:]
    os.rename(mp4_file, os.path.join(output_dir, new_file_name))

修改内容:

  1. 在最后一个for循环中添加一行代码,将文件名中的'h_'替换为空字符串。
  2. 在最后一个for循环中修改一行代码,先使用lstrip方法删除文件名中的数字,再截取第一个字母之后的字符串
修改下面python3代码先删除output_dir目录下文件名中的h_再执行 # 截取第一个字母之后的字符串删除之前的数字import osimport globfrom natsort import natsorteddir_path = rEhomeupoutput_dir = rEhomeup1# 当前文件夹下的所有mp4路径L = for root dirs files in oswal

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

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