На самом деле это не очень хороший способ использовать Python, но если вам нужно сделать что-то подобное, сделайте это правильно:
from __future__ import with_statement
import subprocess
def grep_lines(filename, query_filename):
with open(query_filename, "rb") as myfile:
for line in myfile:
subprocess.call(["/bin/grep", line.strip(), filename])
grep_lines("my2.txt", "query.txt")
И надеюсь, что в вашем файле нет символов, которые имеют специальные значения в регулярных выражениях =)
Кроме того, вы можете сделать это только с grep
:
grep -f query.txt my2.txt
Работает так:
~ $ cat my2.txt
One two
two two
two three
~ $ cat query.txt
two two
three
~ $ python bar.py
two two
two three