我正在尝试分析包含TCP堆栈跟踪的csv文件。我有条件地检查文件的一行是否包含某个字符串,然后将其添加到字典中。
我正在寻找的字符串是:
[SYN]
[SYN, ACK]
我多次检查过该文件。 Python可以找到第一个字符串没问题,但找不到第二个字符串。这是检查的代码:
#variable declaration
synString = '[SYN]'
ackString = '[SYN, ACK]'
#some code
#iterate through csv:
with open('EECS325Hw3Lab3', newline = '') as captureFile:
captureReader = csv.reader(captureFile, delimiter=' ')
for row in captureReader:
#code that doesn't work.
if synString in row or ackString in row:
serverDict[currentServer].append(row)
我知道这不起作用,因为当我打印serverDict时,我只看到[SYN]表达式。这里发生了什么?
答案 0 :(得分:0)
当你阅读它时,每行csv.reader
是一个字符串列表,'SYN'和'ACK'将是列表的连续元素。只需使用open。
for line in open(captureFile):
if synString in line or ackString in line:
serverDict[currentServer].append(line)
每行都是一个字符串,如你所愿。但是,您可能想要删除换行符。