/ / Linux python ler saída de um script python em execução - python, linux, log, saída, autorun

Python Linux lê a saída de um script python em execução - python, linux, logging, output, autorun

Eu tenho um script python em execução como serviço no linux (também como autorun), e ele faz muita saída! Como posso ler esta saída quando o programa já está em execução?

Talvez eu pudesse registrar toda a saída em um arquivo, mas então eu teria que abrir e atualizar o arquivo o tempo todo quando a nova saída é registrada!

Respostas:

2 para resposta № 1

Também é possível implementar a cauda do lado do python, que é basicamente uma leitura contínua dela. O trecho de código para fazer este trabalho pode ser encontrado aqui:

http://code.activestate.com/recipes/157035-tail-f-in-python/

Além disso, se você usar o modo de acréscimo de gravação de arquivos em vez do método de gravação, poderá gerar continuamente a saída.

O Scrapy também usa o conceito de pipelines que permite muitas funcionalidades iguais. Aqui está um exemplo de algum código escasso que você pode usar para fazer a mesma coisa:

class JsonWriterPipeline(object):
def __init__(self):
self.file = (open(filepath, "a"))
def process_item(self, item, spider):
self.file.write(json.dumps(dict(item)) + "n")
return item

3 para resposta № 2

Bem, quando se trata do segundo parágrafo da questão, no shell você pode fazer:

tail -f logfile.log

que atualiza automaticamente quando o arquivo é atualizado, portanto, no Linux, isso é uma solução funcional.