python - 从防火墙日志解析数据并找到“蠕虫”时出现问题
问题描述
我正在努力尝试查看我的代码有什么问题。我是 python 新手。
import os
uniqueWorms = set()
logLineList = []
with open("redhat.txt", 'r') as logFile:
for eachLine in logFile:
logLineList.append(eachLine.split())
for eachColumn in logLineList:
if 'worm' in eachColumn.lower():
uniqueWorms.append()
print (uniqueWorms)
解决方案
eachLine.split()
返回单词列表。当您将其附加到 时logLineList
,它将成为列表的二维列表。
然后,当您遍历它时,它eachColumn
是一个列表,而不是单个列。
如果您想logLineList
成为单词列表,请使用
logLineList += eachLine.split()
代替
logLineList.append(eachLine.split())
最后,uniqueWorms.append()
应该是uniqueWOrms.append(eachColumn)
。并且print(uniqueWorms)
应该在循环之外,因此您只看到最终结果,而不是每次添加蠕虫。
推荐阅读
- r - 如何从 POSIXct 时间戳中删除时区以转换为 XTS?
- python - Pandas:使用另一个表的“虚拟变量”创建一个表
- angular - 使用与当前路线相关的路线参数导航到子路线 - Angular 8
- c++ - 为什么一个向量上的多线程操作很慢?
- c++ - 通过 ccmake 在 cmake 中缓存依赖选项
- python - Python 错误:字节流后无法找到“endstream”标记
- typescript - 获取每个数组的一项并检查两者的条件
- scala - 在 scala 中创建的图像看起来不像预期的那样。不知道为什么
- java - 如何使用随机化为循环中的单个迭代指定不同的对象参数?
- visual-studio - Visual Studio 2019 中有没有办法导航到项目文件中没有的标头?