当前位置: 首页 > 面试题库 >

Python-如何在管道上使用`subprocess`命令

易自珍
2023-03-14
问题内容

我想搭配subprocess.check_output()使用ps -A | grep 'process_name'。我尝试了各种解决方案,但到目前为止没有任何效果。有人可以指导我怎么做吗?


问题答案:

将管道与subprocess模块一起使用,必须通过shell=True

但是,出于种种原因,这并不是真正可取的选择,其中不仅包括安全性。相反,请分别创建psgrep流程,并将输出从一个管道传递到另一个管道,如下所示:

ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()

但是,在你的特定情况下,简单的解决方案是先调用subprocess.check_output(('ps', '-A'))然后str.find在输出上。



 类似资料:
  • 问题内容: 我想搭配使用。我尝试了各种解决方案,但到目前为止没有任何效果。有人可以指导我怎么做吗? 问题答案: 要将管道与模块一起使用,必须通过。 但是,出于各种原因,这并不是真正可取的选择,其中最重要的是安全性。相反,请分别创建和流程,然后将输出从一个管道输送到另一个管道,如下所示: 但是,在您的特定情况下,简单的解决方案是先调用然后在输出上。

  • 问题内容: 我经历了各种不同的名为管道客户端/服务器实现的Linux,但其中大多数在读取/写入时使用阻止默认值。 因为我已经在使用poll()来检查其他标志,所以也可以通过poll()检查传入的FIFO数据是一个好主意… 经过所有研究,我认为以O_RDWR模式打开管道是防止在没有任何编写者打开管道的情况下无限期发生EOF事件的唯一方法。 这样,管道的两端都关闭了,其他客户端也可以打开可写端。作为回

  • 问题内容: 我有一种情况想要在Python中执行以下shell命令并获取输出, 我可以使用此python代码在python中执行上述shell命令, 但是,由于我 不想使用“ shell = True”选项 ,因此我尝试了以下python代码, 我想知道为什么我参考网页中的描述时输出为“ None”:http : //docs.python.org/library/subprocess.html#

  • 问题内容: 我最近将bash执行命令重写为Jenkins管道。旧代码就像 现在,我使用管道脚本来包装命令,像这样 但是,我遇到了一个错误。当我尝试时,它会正确显示。所以我怀疑内部有问题。 在使用管道之前,命令在外壳执行中工作正常。因此,源代码安装在Jenkins服务器上,似乎管道脚本不知道源命令是什么。 如何在sh wrapd块中运行source命令? 问题答案: 替换为 请注意,第一个点后有一个

  • 当Flink在Kubernetes作为豆荚运行时,有人知道如何用Flink运行梁Python管道吗? 我已经成功地使用Portable runner和指向运行在Docker容器中的本地Flink服务器的作业服务运行了一个Beam Python管道。 是否有一种方法可以部署一个侧容器并使用不同的工厂来运行Python harness流程?正确的做法是什么? 这是DockerEnvironmentFa

  • 问题内容: 在Linux终端中,当一个命令的输出太长而无法在一页中读取时,我可以这样做: 这样我就可以读取cat文件的输出并上下滚动。 如何在IPython中执行此操作? 例如,我尝试了一下,但没有成功: 我最初的问题是通过Shift + Page Up不能看到来自的输出,并且我不想更改滚动缓冲区。 问题答案: 在IPython中,您可以使用标准的寻呼机(通常是)来显示对象。另外,您可以增加终端的