Не совсем уверен в вашем вопросе, но следующий фрагмент вызовет zgrep
с двумя аргументами, searchterm и именем файла - и выведите результат (stdout
) построчно:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess
# filename and searchterm
fn, term = 'access_log.gz', 'hello'
p = subprocess.Popen(['/usr/bin/zgrep', term, fn], stdout=subprocess.PIPE)
for line in p.stdout:
print line
В коде, который вы разместили, интерполяция строк (% dpt_search
) не работает, так как перед знаком по модулю нет чистой строки - на самом деле она должна завершиться ошибкой, например:
TypeError: "unsupported operand type(s) for %: 'Popen' and 'str'"