You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python脚本重复运行带参数的CLI命令批量处理WAV文件

批量处理WAV文件生成Talkie LPC代码的Python脚本

以下是实现批量处理的Python脚本,自动遍历指定目录下的所有WAV文件,重复调用目标CLI命令并将结果追加到wavelpc.h中:

import os
import subprocess

# 配置参数
WAV_DIR = "./"  # WAV文件所在目录,当前目录用./,可替换为实际路径
OUTPUT_FILE = "wavelpc.h"
CLI_COMMAND_BASE = ["python3", "python_wizard", "-S", "-T", "tms5220", "-f", "arduino"]

# 以追加模式打开输出文件
with open(OUTPUT_FILE, "a") as out_file:
    # 遍历目录下的所有文件
    for filename in os.listdir(WAV_DIR):
        # 筛选出WAV文件
        if filename.lower().endswith(".wav"):
            wav_path = os.path.join(WAV_DIR, filename)
            print(f"正在处理文件: {wav_path}")
            
            # 拼接完整的CLI命令
            full_command = CLI_COMMAND_BASE + [wav_path]
            
            try:
                # 执行命令并捕获输出
                result = subprocess.run(
                    full_command,
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE,
                    text=True,
                    check=True
                )
                # 将命令输出写入到目标文件
                out_file.write(result.stdout)
                out_file.write("\n")  # 可选:添加换行分隔不同文件的输出
            except subprocess.CalledProcessError as e:
                print(f"处理文件 {filename} 失败: {e.stderr}")
            except Exception as e:
                print(f"处理文件 {filename} 时发生未知错误: {str(e)}")

print("批量处理完成!")

使用说明

  • 把上述代码保存为batch_convert.py
  • 确保脚本和python_wizard在同一目录,或者在CLI_COMMAND_BASE中指定python_wizard的完整路径(比如/home/user/scripts/python_wizard)
  • 如果WAV文件不在当前目录,修改WAV_DIR为实际路径(比如./wav_files)
  • 运行脚本:python3 batch_convert.py

关键细节

  • 使用subprocess.run替代直接调用shell,避免安全风险,同时更稳定地处理命令执行
  • 以追加模式打开wavelpc.h,确保所有文件的输出都被添加到同一个文件中
  • 捕获命令执行的错误信息,方便排查处理失败的文件
  • 自动筛选.wav后缀的文件,避免处理无关文件

内容的提问来源于stack exchange,提问作者Stephen Adams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:42:44