如何使用单个 python(.py) 脚本 运行 多个 python 脚本

How to run multiple python scripts using single python(.py) script

我已经编写了多个 python 脚本,这些脚本将按顺序 运行 实现一个目标。即:

我的目录/ a1.py, xyz.py, abc.py, ...., an.py

所有这些脚本都在同一目录中,现在我想编写一个脚本,可以按顺序 运行 所有这些 .py 脚本。为了实现这个目标,我想写一个单一的python(.py)脚本,但不知道怎么写。我有 windows10,所以 bash 脚本方法不适用。

在 windows 中编写高效迁移脚本的最佳方法是什么?

可以使用主 python 脚本(而且它是跨平台的,与批处理或 shell 不同)。扫描目录并打开每个文件,执行它。

import glob,os
os.chdir(directory)  # locate ourselves in the directory
for script in sorted(glob.glob("*.py")):
    with open(script) as f:
       contents = f.read()
    exec(contents)

(python 2 中有一个 execfile 方法,但它不见了,在 python 3 中我们必须读取文件内容并将其传递给 exec,这也适用于 python 2)

在该示例中,顺序由脚本名称决定。要修复不同的顺序,请改用 python 脚本的显式列表:

for script in ["a.py","z.py"]:

该方法不会创建子流程。它只是运行脚本,就好像它们被串联在一起一样(如果某些文件没有关闭并被后续脚本使用,这可能是一个问题)。此外,如果发生异常,它会停止整个脚本列表,这可能还不错,因为它避免了以下脚本处理错误数据。

您可以像这样为所有脚本 2 命名一个函数:

script2.py
def main():
    print('Hello World!')

并导入 script2 函数:

script1.py
from script2.py import *
main()

希望这对您有所帮助(如果我没有回答您的问题请告诉我我是意大利人..)