我正在编写一个Python脚本来解析Squid(http://www.squid-cache.org/)日志文件。虽然日志每天都会轮换以防止它们变大,但到每天结束时它们确实会达到 40-90MB。
本质上,我所做的就是逐行读取文件,解析出我需要的数据(IP、请求的 URL、时间)并将其添加到 sqlite 数据库中。然而这似乎花费了很长的时间(现在已经运行了 20 多分钟)
很明显,无法重新读取文件。我想做的是读取文件,然后检测所有写入的新行。或者更好的是,在一天开始时,脚本将在添加数据时简单地实时读取数据,因此永远不会有任何长时间的处理时间。
我该如何去做呢?
最佳答案
实现此目的的一种方法是模拟 tail -f
。该脚本将不断监视文件并处理出现的每个新行。
有关讨论和一些秘诀,请参阅 tail -f in python with no time.sleep
关于Python:读取海量文件中添加的新信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310529/