python - 如何终止使用 Subprocess.Popen 启动进程的函数并移至下一行代码?

标签 python linux python-2.7 subprocess

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

subprocess.Popen(['./xyzScript.sh']).communicate() print("我正在执行")

怎么做?

最佳答案

communicate是阻塞操作。用于获取进程的内容'stdoutstderr .由于您丢弃了它的返回值,因此您似乎不需要它。简单地运行:

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

足够了。

默认情况下,stdoutstderr没有被重定向,也就是说,他们去了 stdout 的地方和 stderr你的调用 python 脚本是。如果您希望以编程方式与 shell 脚本的输出交互,您应该配置 Popen 的 stdout 和 stderr 标志。 .例如,如果您希望一起丢弃 shell 脚本的输出,请运行:

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

关于python - 如何终止使用 Subprocess.Popen 启动进程的函数并移至下一行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56904586/

相关文章:

linux - 在 ksh shell 脚本中输入临时变量后解析参数

python - 如何增加最大查询时间?

python-2.7 - pip、easy_install 命令在 Ubuntu 中不起作用。安装了 Python 2.7 和 3.4

python - 如何在 python 2.7 中打印 1 的最大连续出现次数?

python - 查找两个字符串之间的共同字符

python - 非事件窗口截图 PrintWindow + win32gui

python - 在 Django 中使用 clean() 方法

python - 缺少 1 个必需的位置参数 : 'Key' Encryption

linux - 现代cpus如何处理跨页未对齐访问?

html - wget:以 .jpg 扩展名保存