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

如何依次在多独立数据集上运行Python脚本?当前仅首个脚本执行成功

解决Python脚本顺序执行问题

你之前的代码错误在于把两个脚本路径放在同一个system命令里,这会被当成第一个脚本的命令行参数,所以只有第一个脚本会被执行,第二个路径只是作为参数传递给它,根本没启动第二个任务。要实现顺序执行,需要分别调用每个任务,前一个执行完成后再启动下一个。

方案1:用循环逐个调用os.system

把所有要执行的任务整理成列表,循环调用system,每个任务单独执行:

from os import system

# 整理所有要执行的命令,每个命令对应一个数据集的运行任务
tasks = [
    'python "E:\\Test and delete\\2\\MainPythonFile.py" "数据集路径1"',
    'python "E:\\Test and delete\\2\\MainPythonFile.py" "数据集路径2"',
    # 继续添加更多数据集对应的任务
]

# 依次执行每个任务,前一个完成后才会启动下一个
for task in tasks:
    system(task)

注意:路径中的反斜杠要写成\\(转义),或者直接用正斜杠/,避免路径解析错误。

方案2:用subprocess.run(更推荐)

os.system是较老的方法,subprocess模块功能更强大,能更安全地处理命令参数,还能获取执行状态:

import subprocess

# 把每个任务拆分成列表形式,无需处理引号转义
tasks = [
    ['python', 'E:/Test and delete/2/MainPythonFile.py', '数据集路径1'],
    ['python', 'E:/Test and delete/2/MainPythonFile.py', '数据集路径2'],
    # 添加更多任务
]

for task in tasks:
    # check=True会在脚本执行出错时抛出异常,方便排查问题
    subprocess.run(task, check=True)

额外优化:确保运行时资源充足

如果要避免在系统资源紧张时启动新任务,可以添加资源检查逻辑,比如用psutil库监控CPU和内存使用率:

  1. 先安装依赖:
pip install psutil
  1. 添加检查逻辑的代码:
import subprocess
import psutil
import time

def check_resource(cpu_limit=70, mem_limit=80):
    # 获取当前CPU使用率(百分比)
    cpu_usage = psutil.cpu_percent(interval=1)
    # 获取当前内存使用率(百分比)
    mem_usage = psutil.virtual_memory().percent
    return cpu_usage < cpu_limit and mem_usage < mem_limit

tasks = [
    ['python', 'E:/Test and delete/2/MainPythonFile.py', '数据集路径1'],
    ['python', 'E:/Test and delete/2/MainPythonFile.py', '数据集路径2'],
]

for task in tasks:
    # 等待资源充足后再启动任务
    while not check_resource():
        print("系统资源占用过高,等待1分钟后重试...")
        time.sleep(60)
    print(f"启动任务: {' '.join(task)}")
    subprocess.run(task, check=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:25:24