Linux python从正在运行的python脚本中读取输出

时间:2013-04-05 00:22:03

标签: python linux logging output autorun

我有一个在linux中作为服务运行的python脚本(也作为自动运行),它有很多输出! 如何在程序运行时读取此输出?

也许我可以将所有输出记录到文件中,但是当记录新输出时我将不得不打开并刷新文件!

2 个答案:

答案 0 :(得分:3)

那么,当谈到问题的第二段时,你可以在shell中执行:

tail -f logfile.log

在文件更新时自动刷新,因此在Linux下是一个可行的解决方案。

答案 1 :(得分:2)

也可以从python端实现tail,这基本上是对它的连续读取。可以在此处找到完成此工作的代码段:

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

此外,如果使用文件写入的附加模式而不是写入方法,则可以连续输出。

Scrapy还使用了管道的概念,它允许许多相同的功能。以下是您可能用于执行相同操作的一些scrapy代码的示例:

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