Leitura de um arquivo atualizado com frequência
Atualmente, estou escrevendo um programa em python em um sistema Linux. O objetivo é ler um arquivo de log e executar um comando bash ao encontrar uma sequência específica. O arquivo de log está sendo gravado constantemente por outro programa. Minha pergunta é
Se eu abrir o arquivo usando o método open (), meu objeto de arquivo Python será atualizado à medida que o arquivo real for gravado pelo outro programa ou terei que reabrir o arquivo em intervalos de temp
Obrigad
Jim
UPDATE: Obrigado por respostas até agora. Talvez eu devesse ter mencionado que o arquivo está sendo gravado por um aplicativo Java EE, portanto não tenho controle sobre quando os dados são gravados nele. Atualmente, tenho um programa que reabre o arquivo a cada 10 segundos e tenta ler a partir da posição do byte no arquivo que ele leu pela última vez. No momento, apenas imprime a string retornada. Eu esperava que o arquivo não precisasse ser reaberto, mas o comando de leitura de alguma forma teria acesso aos dados gravados no arquivo pelo aplicativo 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)
Obrigado pelas dicas sobre pyinotify e geradores. Vou dar uma olhada nelas para obter uma solução melho