Python:读取海量文件中添加的新信息

标签 python file parsing

我正在编写一个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/

相关文章:

python - 从数据帧列中删除不连续的值

linux - 如何在csv文件上使用for循环来复制文件

c# - 由 Directory.Delete() 引起的 WCF 安全异常

python - 使用Python解析特定的网站(XML)并保存到mysql

python - 重复numpy数组而不复制数据

Python:在比较期间强制 heapq.merge 将字符串解释为整数

python - Pandas :时间戳系列中的唯一天数

java - 从 Java 中的文件中读取行

MySQL - 让 ORDER BY 按嵌入到字符串字段中的数字排序

parsing - 如何在 Haskell 中将小数部分解析为有理数?