0

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

也许我可以将所有输出记录到一个文件中,但是当记录新输出时,我必须一直打开并刷新文件!

4

2 回答 2

3

好吧,当谈到问题的第二段时,您可以在 shell 中执行以下操作:

tail -f logfile.log

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

于 2013-04-05T00:25:55.427 回答
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
于 2013-04-05T00:29:33.087 回答