【问题标题】:How to send multiple commands to terminal(linux) from python?如何从 python 向终端(linux)发送多个命令?
【发布时间】:2018-02-08 15:32:19
【问题描述】:

我想向 Linux 终端发送运行 python 脚本的命令。我有一个我想要运行的 python 文件列表,当我们按顺序读取列表时,我想一个接一个地运行它们。第一个文件完成后,它应该发送第二个文件以运行,依此类推。

【问题讨论】:

  • 这听起来像是一个shell问题,而不是python问题。
  • @Yuu 虽然类似,但问题是如何同时运行脚本,而不是按顺序运行。
  • 嘿@KAMAL,如果您能提供一些code example 来更好地说明您的问题并了解您的努力,我们将不胜感激,这样我们就可以更好地了解阻碍您获得所需结果的原因和给你更好的建议/反馈。

标签: python linux python-3.x


【解决方案1】:

您可以使用以下命令顺序运行脚本:

python script1.py && python script2.py && python script3.py

&& 只有在前一个脚本成功运行时才会运行下一个脚本。

【讨论】:

  • 但为此,我需要为每个脚本编写。
【解决方案2】:

您可以使用subprocess 模块进行迭代:

import subprocess
script_list = ['script1.py', 'script2.py']
for script in script_list:
    args = ['python', script]
    p = subprocess.check_call(args)

【讨论】:

    【解决方案3】:

    您可以使用子进程模块的check_call 函数,它是一个阻塞调用。当您遍历列表时,一个会一个接一个地运行。

    import subprocess
    
    files = ['script1.py', 'script2.py']
    for _file in files:
        call_output = subprocess.check_all(['python', _file])
    

    【讨论】:

    • 将此添加到您的帖子中,这不是您问题的答案。
    • 请不要用我的回答来回答你自己的问题。
    猜你喜欢
    • 1970-01-01
    • 2021-09-22
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多