python - 如何获取 grep 命令的输出(Python)

标签 python grep subprocess

我有一个输入文件 test.txt 为:

host:dc2000
host:192.168.178.2

我想通过以下方式获取这些机器的所有地址:

grep "host:" /root/test.txt 

依此类推,我通过 python 获得命令输出:

import subprocess
file_input='/root/test.txt'
hosts=subprocess.Popen(['grep','"host:"',file_input], stdout= subprocess.PIPE)
print hosts.stdout.read()

但结果是空字符串。

我不知道我遇到了什么问题。你能建议我如何解决吗?

最佳答案

试试看:

import subprocess
hosts = subprocess.check_output("grep 'host:' /root/test.txt", shell=True)
print hosts

关于python - 如何获取 grep 命令的输出(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12809467/

相关文章:

Python Canopy 内核不断崩溃

linux - 剪切行的特定部分并粘贴到另一个文件的特定部分

python - 使用 Python 在非常大的文件中查找字节序列

bash - 使用 awk 获取数组中参数的值

python - 如何应用 xmodem CRC 生成和校验

python - 父/子数据库包含循环引用

python - 将大文件作为 POST 请求进行 curl

python - 使用子进程模块在 python 中发送电子邮件

linux - 如何在 shell 脚本中的函数内打印变量值?

python - 如何使用 python subprocess.check_output 和 root/sudo