【问题标题】:Run a while-loop as subprocess in background在后台运行一个while循环作为子进程
【发布时间】:2020-01-04 07:39:22
【问题描述】:

不幸的是,我的上一篇文章被标记为重复,我的问题没有得到解决。所以我得换个说法。

您可以在下面看到我的主文件(SP_Test.py),它调用另一个带有参数的 python 脚本。

#!/usr/bin/python

import subprocess

channels = input("")

subprocess.call(['python', '/Users/christian/pyth/term/helloworld.py', str(channels)])

print("Hello")

在这里你可以看到我的处理文件,它被主文件调用并且应该在后台工作(原始文件连续处理音频输入)。

#!/usr/bin/python

import sys

print("Hello World!")
print(sys.argv[1])

while(1):
    x=1

现在的问题是我想在我的主程序 (SP_Test.py) 继续运行时在后台运行这个 while 循环。到目前为止,它卡在循环中并且不会回来,因此它永远不会打印“Hello”。

我在这个论坛中没有找到适合我的解决方案。所以请帮助我。谢谢。


PS: 是否也可以在 conda 环境中从 main-file 调用“helloworld.py”?

【问题讨论】:

  • 您的最后一个问题重复的。您可能希望看到this question 来启动您,或者您想研究线程。我不确定我是否遵循这两个问题的叙述

标签: python multithreading terminal subprocess arguments


【解决方案1】:

subprocess.call() 会等到命令完成,因此会阻塞你的程序。 相反,您想使用subprocess.Popen,它将在后台运行程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2017-05-20
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多