0

This is not direting to file p

with open('/var/tmp/out3') as f:
       before = collections.deque(maxlen=1)
       for line in f:
          if 'disk@g5000cca025a1ee6c' in line:
                sys.stdout.writelines(before)
          p.write(before)
Ahmed
  • 25
  • 6

1 Answers1

0

Try this:

import sys

filename = '/var/tmp/out3'
expression = 'disk@g5000cca025a1ee6c'

with open(filename, 'r') as f:
with open('p', 'w') as p_file:
    previous = next(f)
    for line in f:
        if expression in line:
            p_file.write(previous)
        previous = line

If the expression is found, you should find a file 'p' in your current directory containing the expression.

It worked when I tried it on Python2.7.10. I took the code from this answer Refer to previous line when iterating through file with Python.

Hope this helps.