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

如何基于文本文件中的内容按顺序执行Python脚本

按指定顺序执行Python脚本的正确实现

你的代码存在几个关键问题:

  • 函数内直接写Script1.py是无效语法,Python无法识别该指令
  • 命令字典的键是Script1这类不带.py的名称,但文本文件中的条目是Script1.py,运行时会触发KeyError
  • 写法扩展性极差,新增脚本必须手动修改主代码,完全没必要

下面提供两种实用的实现方式:

方法1:直接加载脚本代码执行(适合简单场景)

这种方式会将目标脚本的代码读取到当前进程中执行,适用于脚本间无需环境隔离的情况:

with open('test.txt', 'r') as cmd_file:
    for line in cmd_file:
        script_path = line.strip()
        if not script_path:  # 跳过空行
            continue
        try:
            with open(script_path, 'r') as f:
                exec(f.read())
        except FileNotFoundError:
            print(f"错误:找不到脚本文件 {script_path}")
        except Exception as err:
            print(f"执行 {script_path} 时出错:{err}")

方法2:用subprocess启动独立进程执行(推荐生产场景)

这种方式会启动单独的Python进程运行目标脚本,避免不同脚本的变量、环境互相干扰,还能捕获脚本的输出信息:

import subprocess
import sys

with open('test.txt', 'r') as cmd_file:
    for line in cmd_file:
        script_path = line.strip()
        if not script_path:
            continue
        try:
            # 调用当前环境的Python解释器执行脚本
            proc = subprocess.run(
                [sys.executable, script_path],
                check=True,
                capture_output=True,
                text=True
            )
            # 打印脚本的正常输出(不需要可删除)
            print(proc.stdout)
        except subprocess.CalledProcessError as err:
            print(f"{script_path} 执行失败,错误信息:{err.stderr}")
        except FileNotFoundError:
            print(f"错误:找不到脚本文件 {script_path}")

额外说明

  • 两种方法都处理了文本文件中的空行,避免因空行触发报错
  • 加入异常处理逻辑,单个脚本执行失败不会导致主脚本终止
  • subprocess方式更安全,当脚本间存在依赖冲突或需要严格隔离时优先使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:50:46