Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用单个python(.py)脚本运行多个python脚本_Python_Windows_Migration_Sequential - Fatal编程技术网

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

如何使用单个python(.py)脚本运行多个python脚本,python,windows,migration,sequential,Python,Windows,Migration,Sequential,我编写了多个python脚本,这些脚本将按顺序运行以实现目标。i、 e: 我的目录/ a1.py, xyz.py, abc.py, ...., 安比 所有这些脚本都在同一个目录中,现在我想编写一个脚本,可以按顺序运行所有这些.py脚本。为了实现这个目标,我想编写一个python(.py)脚本,但不知道如何编写它。我有windows10,因此bash脚本方法不适用 在windows中编写高效迁移脚本的最佳方法是什么?可以使用主python脚本(它是跨平台的,而不是批处理或shell)。扫描目录并打

我编写了多个python脚本,这些脚本将按顺序运行以实现目标。i、 e:

我的目录/ a1.py, xyz.py, abc.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)
(在Python2中有一个
execfile
方法,但它已经不存在了,在Python3中,我们必须读取文件内容并将其传递给
exec
,该方法也适用于Python2)

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

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

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

您可以为所有脚本2命名一个函数,如下所示:

script2.py
def main():
    print('Hello World!')
并使用以下命令导入script2函数:

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

我希望这有帮助(如果我没有回答你的问题,请告诉我我是意大利人。)

为什么不将其他脚本导入此脚本,然后就使用他们的方法?看看这个,对于批处理文件来说,按顺序运行的多个python脚本似乎很有用。您可以使用标准库中的模块。您建议的方法是将一个文件导入另一个文件的简单方法,但我想一个接一个地运行许多不同编写的脚本通过单个脚本。为什么不能使用此方法?你能更好地解释一下吗?因为,我想保持脚本的独立性,但希望通过一个脚本一个接一个地运行