簡體   English   中英

如何獲取grep命令的輸出(Python)

[英]how to get output of grep command (Python)

我有一個輸入文件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

您的代碼應該有效,您確定用戶具有讀取文件的訪問權限嗎?

另外,你確定文件中有"host:"嗎? 你的意思可能是:

hosts_process = subprocess.Popen(['grep','host:',file_input], stdout= subprocess.PIPE)
hosts_out, hosts_err = hosts_process.communicate()

另一個解決方案,試試Plumbum包( https://plumbum.readthedocs.io/ ):

from plumbum.cmd import grep print(grep("host:", "/root/test.txt")) print(grep("-n", "host:", "/root/test.txt")) #'-n' option

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM