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

如何运行“ ps cax | grep某些东西在Python中?

华良才
2023-03-14
问题内容

如何运行带有管道的命令|

子流程模块似乎很复杂…

是否有类似的东西

output,error = `ps cax | grep something`

如在shell脚本?


问题答案:

请参阅更换外壳管道:

import subprocess

proc1 = subprocess.Popen(['ps', 'cax'], stdout=subprocess.PIPE)
proc2 = subprocess.Popen(['grep', 'python'], stdin=proc1.stdout,
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE)

proc1.stdout.close() # Allow proc1 to receive a SIGPIPE if proc2 exits.
out, err = proc2.communicate()
print('out: {0}'.format(out))
print('err: {0}'.format(err))

PS。使用shell=True可能很危险。例如,请参阅文档中的警告。

还有一个sh模块,可以使Python中的子流程脚本更加有趣:

import sh
print(sh.grep(sh.ps("cax"), 'something'))


 类似资料:
  • 问题内容: 有没有办法例如!每n秒打印一次?例如,程序将遍历我拥有的所有代码,然后经过5秒(带有),它将执行该代码。我将使用它来更新文件,但不打印Hello World。 例如: 问题答案:

  • 我有一个表格,上面有多个大陆的数据。现在我想删除每一行不是欧洲或非洲的大陆。与: 我每一排都是“欧洲”,但我想念“非洲”。有没有办法包含“或”-运算符?这对我不起作用。

  • 在过去的几天里,我们看到服务器上的JVM进入了一种状态,他们在OldGen的GC中花费了100%的CPU时间,当时: 答:他们不需要这样做,因为堆上还有足够的空间 B.他们没有回收任何东西。 通过查看堆栈跟踪并将ProcessExplorer中的ThreadID与堆栈转储中的ThreadID关联,我知道它们在GC中。每个GC线程占用大约4%的CPU。 服务器运行16 gig堆(32gig物理RAM

  • 问题内容: 我有以下代码: 该文件包含以下内容: 但是由于某种原因,每次都只返回一个空列表。 代码中可能存在愚蠢的错误或错字,但我只是找不到。提前致谢。 问题答案: 你读的文件 已经 和文件指针不是在 末尾 的文件。然后调用将不会返回数据。 仅读取一次文件: 另一种选择是在重新阅读之前先回到开头: 但这只是浪费CPU和I / O时间。 最好的办法是尝试和阅读 小 数据量,或寻求到了最后,通过采取文

  • 问题内容: 我正在为某些目录编写一些脚本,但是这些目录包含各种文件类型。 我想只是和现在,但也许其他几个人的未来。 到目前为止,我有: 谁能告诉我我现在如何只添加特定的文件扩展名? 问题答案: 只需使用参数,如下所示: 那应该做你想要的。 从下面的HoldOffHunger答案中获取解释: :命令 :递归地 :忽略大小写 :所有* .cpp:C ++文件(如果文件名中带有星号的目录,请使用\进行转