2024-07-03 06:23:20 发布
网友
我是一个新手,在linux中自动化了一些测试用例。我想转到subprocess.Popen后面的下一行并打印“我正在执行”
subprocess.Popen(['./xyzScript.sh']).communicate() print("I am executing")
怎么做
communicate是一个阻塞操作。它用于获取进程“stdout和stderr的内容。因为您放弃了它的返回值,所以似乎不需要它。简单运行:
communicate
stdout
stderr
subprocess.Popen(['./xyzScript.sh']) print("I am executing")
够了
默认情况下,stdout和stderr不会被重定向,即它们会转到调用python脚本的stdout和stderr所在的位置。如果希望以编程方式与shell脚本的输出交互,则应配置Popen的stdout和stderr标志。例如,如果希望同时放弃shell脚本的输出,请运行:
Popen
subprocess.Popen(['./xyzScript.sh'], stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL, ) print("I am executing")
communicate
是一个阻塞操作。它用于获取进程“stdout
和stderr
的内容。因为您放弃了它的返回值,所以似乎不需要它。简单运行:够了
默认情况下,
stdout
和stderr
不会被重定向,即它们会转到调用python脚本的stdout
和stderr
所在的位置。如果希望以编程方式与shell脚本的输出交互,则应配置Popen
的stdout和stderr标志。例如,如果希望同时放弃shell脚本的输出,请运行:相关问题 更多 >
编程相关推荐