如何杀死一个使用Subprocess.Popen启动进程的函数并移动到下一行代码?

2024-07-03 06:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个新手,在linux中自动化了一些测试用例。我想转到subprocess.Popen后面的下一行并打印“我正在执行”

subprocess.Popen(['./xyzScript.sh']).communicate() print("I am executing")

怎么做


Tags: linuxsh测试用例amsubprocessprintpopen新手
1条回答
网友
1楼 · 发布于 2024-07-03 06:23:20

communicate是一个阻塞操作。它用于获取进程“stdoutstderr的内容。因为您放弃了它的返回值,所以似乎不需要它。简单运行:

subprocess.Popen(['./xyzScript.sh'])
print("I am executing")

够了

默认情况下,stdoutstderr不会被重定向,即它们会转到调用python脚本的stdoutstderr所在的位置。如果希望以编程方式与shell脚本的输出交互,则应配置Popen的stdout和stderr标志。例如,如果希望同时放弃shell脚本的输出,请运行:

subprocess.Popen(['./xyzScript.sh'], stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL, )
print("I am executing")

相关问题 更多 >