不幸的是,我的上一篇文章被标记为重复,并且我的问题没有解决。所以我不得不说一点不同。
在下面,您可以看到我的主文件(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环境中从主文件调用“ helloworld.py”?
答案 0 :(得分:0)
subprocess.call()
将等待命令执行完毕,因此会阻塞您的程序。
相反,您想使用subprocess.Popen
,它将在后台运行该程序。