[英]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.