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

Eis*_*zia 3 python windows migration sequential

我已经编写了多个 python 脚本,它们将按顺序运行以实现一个目标。IE:

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

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

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

Jea*_*bre 5

使用主 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)
Run Code Online (Sandbox Code Playgroud)

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

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

for script in ["a.py","z.py"]:
Run Code Online (Sandbox Code Playgroud)

该方法不会创建子流程。它只是像将脚本连接在一起一样运行脚本(如果某些文件没有被以下脚本关闭和使用,这可能是一个问题)。此外,如果发生异常,它会停止整个脚本列表,这可能不是那么糟糕,因为它避免了以下脚本处理坏数据。