Lectura de un archivo actualizado con frecuencia

Actualmente estoy escribiendo un programa en Python en un sistema Linux. El objetivo es leer un archivo de registro y ejecutar un comando bash al encontrar una cadena en particular. El archivo de registro está siendo constantemente escrito por otro programa. Mi pregunta es

Si abro el archivo usando el método open (), ¿se actualizará mi objeto de archivo Python a medida que el otro programa escriba el archivo real o tendré que volver a abrir el archivo a intervalos programados?

Gracia

Jim

UPDATE: Gracias por las respuestas hasta ahora. Tal vez debería haber mencionado que el archivo está siendo escrito por una aplicación Java EE, por lo que no tengo control sobre cuándo se escriben los datos en él. Actualmente tengo un programa que vuelve a abrir el archivo cada 10 segundos e intenta leer desde la posición de byte en el archivo que leyó por última vez. Por el momento, solo imprime la cadena que se devuelve. Esperaba que no fuera necesario volver a abrir el archivo, pero el comando de lectura de alguna manera tendría acceso a los datos escritos en el archivo por la aplicación Java.

#!/usr/bin/python
import time

fileBytePos = 0
while True:
    inFile = open('./server.log','r')
    inFile.seek(fileBytePos)
    data = inFile.read()
    print data
    fileBytePos = inFile.tell()
    print fileBytePos
    inFile.close()
    time.sleep(10)

Gracias por los consejos sobre pyinotify y generadores. Voy a echar un vistazo a estos para una mejor solución.

Respuestas a la pregunta(6)

Su respuesta a la pregunta