Eis*_*zia 3 python windows migration sequential
我已经编写了多个 python 脚本,它们将按顺序运行以实现一个目标。IE:
我的目录/ 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)
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)
该方法不会创建子流程。它只是像将脚本连接在一起一样运行脚本(如果某些文件没有被以下脚本关闭和使用,这可能是一个问题)。此外,如果发生异常,它会停止整个脚本列表,这可能不是那么糟糕,因为它避免了以下脚本处理坏数据。