我有一个在linux中作为服务运行的python脚本(也作为自动运行),它有很多输出! 如何在程序运行时读取此输出?
也许我可以将所有输出记录到文件中,但是当记录新输出时我将不得不打开并刷新文件!
答案 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