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

如何在Azure ML/Colab批量运行数万行带参数的!python命令?

批量执行Python脚本处理MP4文件的高效方案

针对你在Azure ML Notebook或Google Colab中需要批量执行上万条!python命令的问题,这里提供几种高效的解决方案,完全适配你的需求(处理目录下所有MP4文件,生成对应同名.pkl文件):

方案1:Python循环+subprocess模块(最通用)

Notebook中的!python本质是执行shell命令,用Python的subprocess模块可以在循环中直接调用目标脚本,无需依赖外部命令文本文件,代码如下:

import os
import subprocess

# 遍历当前目录下所有MP4文件
for filename in os.listdir('.'):
    if filename.endswith('.mp4'):
        # 生成对应的pkl文件名
        pkl_filename = filename.replace('.mp4', '.pkl')
        # 构造并执行命令
        cmd = ['python', 'ntu_pose_extraction.py', filename, pkl_filename]
        # 执行命令,如需查看日志可添加capture_output=True参数
        subprocess.run(cmd, check=True)

方案2:Shell脚本批量执行(适合大规模任务)

  1. 先在Notebook中生成shell脚本文件:
import os

with open('run_batch.sh', 'w') as f:
    for filename in os.listdir('.'):
        if filename.endswith('.mp4'):
            pkl_filename = filename.replace('.mp4', '.pkl')
            f.write(f'python ntu_pose_extraction.py {filename} {pkl_filename}\n')
  1. 赋予脚本执行权限并运行:
!chmod +x run_batch.sh
!bash run_batch.sh

如果想并行执行(加快处理速度,需注意资源占用),可以用parallel命令(Colab/Azure ML通常已预装):

!parallel -j 4 < run_batch.sh

-j 4表示同时运行4个进程,可根据环境CPU核心数调整数值。

方案3:直接使用Notebook魔法命令循环

如果偏好使用!魔法命令,可通过get_ipython().system()在Python循环中执行:

import os

for filename in os.listdir('.'):
    if filename.endswith('.mp4'):
        pkl_filename = filename.replace('.mp4', '.pkl')
        get_ipython().system(f'python ntu_pose_extraction.py {filename} {pkl_filename}')

前置准备

确保ntu_pose_extraction.py已下载到当前目录,可提前执行:

!wget https://raw.githubusercontent.com/open-mmlab/mmaction2/90fc8440961987b7fe3ee99109e2c633c4e30158/tools/data/skeleton/ntu_pose_extraction.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:20:32