我想使用subprocess.check_output() ps -A | grep 'process_name'。 我尝试了各种解决方案,但到目前为止都没用。有人能指导我怎么做吗?
当前回答
command = "ps -A | grep 'process_name'"
output = subprocess.check_output(["bash", "-c", command])
其他回答
此外,尝试使用'pgrep'命令而不是'ps -A | grep' process_name'
你可以尝试sh.py中的管道功能:
import sh
print sh.grep(sh.ps("-ax"), "process_name")
请参阅使用subprocess设置管道的文档:http://docs.python.org/2/library/subprocess.html#replacing-shell-pipeline
我还没有测试下面的代码示例,但它应该是你想要的:
query = "process_name"
ps_process = Popen(["ps", "-A"], stdout=PIPE)
grep_process = Popen(["grep", query], stdin=ps_process.stdout, stdout=PIPE)
ps_process.stdout.close() # Allow ps_process to receive a SIGPIPE if grep_process exits.
output = grep_process.communicate()[0]
command = "ps -A | grep 'process_name'"
output = subprocess.check_output(["bash", "-c", command])
或者始终可以在子进程对象上使用communication方法。
cmd = "ps -A|grep 'process_name'"
ps = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
output = ps.communicate()[0]
print(output)
communication方法返回一个由标准输出和标准错误组成的元组。
推荐文章
- python中的assertEquals和assertEqual
- 如何保持Python打印不添加换行符或空格?
- 为什么Python的无穷散列中有π的数字?
- Python 3.7数据类中的类继承
- 如何在PyTorch中初始化权重?
- 计数唯一的值在一列熊猫数据框架像在Qlik?
- 使用Pandas将列转换为行
- 从matplotlib中的颜色映射中获取单个颜色
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- 在tmux中保持窗口名称固定
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?