【问题标题】:Linux python read output from a running python scriptLinux python从正在运行的python脚本读取输出
【发布时间】:2013-04-05 00:22:03
【问题描述】:

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

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

【问题讨论】:

    标签: python linux logging output autorun


    【解决方案1】:

    好吧,说到问题的第二段,在shell中你可以这样做:

    tail -f logfile.log
    

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

    【讨论】:

    • +1。还有multitail(通过通配符查看多个文件,单独或合并,过滤和着色等),glogg(在漂亮的GUI窗口中查看文件)等。没有理由构建当它已经存在时你自己的东西。
    【解决方案2】:

    也可以从python端实现tail,基本就是连续读取它。可以在这里找到使这项工作的代码 sn-p:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 2015-11-24
      • 2021-07-13
      • 2021-07-08
      • 1970-01-01
      • 2020-12-31
      • 2018-12-08
      相关资源
      最近更新 更多