【问题标题】:python run multiple scriptspython运行多个脚本
【发布时间】:2023-03-28 19:35:01
【问题描述】:

您好,我想同时运行 add1.pyadd2.py 并搜索了 BAT 文件和 SH 文件,但我自己无法做到。任何人都可以帮助我吗?文件夹在以下路径C:\Users\Jia\Downloads\Telegram Bot\Scripts 我可能还会添加更多的脚本,例如 add3.py add4.py 并且列表还在继续。有没有人有简单的提示可以帮助我运行这个文件夹中的每个脚本?谢谢!

如果脚本一个接一个运行就更好了,示例add2.pyadd1.py完成后运行。

【问题讨论】:

  • 多处理.....?
  • 在 Windows 上,谷歌搜索“开始”命令,这将允许您在批处理文件中启动某些内容,而无需等待它完成。您应该使用脚本文件的路径作为第一个参数来启动您的 python.exe。如果您想一个接一个地运行它们,请不要使用“开始”,而只需在您的批处理文件中使用<your path>/python.exe <script file>。运行文件夹中的每个脚本是一种非常不安全的设计。试着想一些更安全的东西。
  • 为什么不编写 Python 代码 imports 适当的顶级函数并调用它们?
  • @JiaHao 您没有将任何答案标记为已接受,这些答案没有帮助您解决问题吗?

标签: python python-3.x windows


【解决方案1】:

只需运行:python add1.py & python add2.py。如果您只想在第一个成功执行后运行第二个,请使用python add1.py && python add2.py

同时运行它们将使用称为并发的东西,这需要对您的脚本进行一些修改。

注意:这仅适用于 Windows。在 Linux 或 MacOS 上,您将使用:python add1.py ; python add2.py

您可以手动添加更多脚本。要运行文件夹中的每个 python 文件,您可以使用:python *.py,如果您将它们全部作为模块导入到一个名为 main.py 的新文件中,并在该文件中按照您喜欢的任何顺序执行它们。

【讨论】:

  • 你能检查第一行吗?这两个命令在我看来都是一样的。
  • 抱歉,本意是为了条件执行放一个双 &。
【解决方案2】:

正如其他人已经建议的那样,您可以制作一个执行您的 N 个 python 脚本的 python 文件。

使用subprocess,如下所述:https://stackoverflow.com/a/11230471/11962413

import subprocess

subprocess.call("./test1.py", shell=True)
subprocess.call("./test2.py", shell=True)

【讨论】:

    【解决方案3】:

    如果你只是想运行 python 文件,你可以试试这个:

    import os
    
    lst=[l for l in os.listdir() if l.endswith(".py")]
    for ls in lst:
       os.system(f'python {ls}')
    

    或者,如果名称有某种模式或者可以确定,试试这个:

    import os
    for i in range(1,<up to last name+1>):
        os.system(f"python add{i}.py")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2021-12-19
      • 2016-06-01
      • 2021-06-06
      • 1970-01-01
      相关资源
      最近更新 更多