2 回答

TA贡献1725条经验 获得超7个赞
您不应该使用file.readlines()。这样做会立即将整个文件读入内存,这很可能会立即将其填满。相反,遍历文件:
with open("internet.log", "r") as file:
for items in file:
(当然,取决于您对数据的处理方式,当您遍历文件时,这仍然可能会中断。)

TA贡献1872条经验 获得超3个赞
您正在使用读取整个文件到内存中readlines。
您可以说一次读一行for items in file。
使用更好的变量名和列表理解来稍微整理代码,以生成结果:
with open("internet.log") as log:
finalResults = [[getDate(line), getIPAddress(line), getDomainsVisited(line)]
for line in log
if 'query[A]' in line]
我将结果提取到一个函数:
def parse_log_line(line):
return [getDate(line),
getIPAddress(line),
getDomainsVisited(line)]
那么您的代码将是:
with open("internet.log") as log:
finalResults = [parse_log_line(line)
for line in log
if 'query[A]' in line]
添加回答
举报