text= open("/Users/amanshah/Desktop/hsn/a.tcp","r")
lines=text.readlines()
a=[]
c=[]
d=[]
e=[]
sum1=0
for line in lines:
temp=line.split()
a.append(int(temp[1]))
c.append(int(temp[5]))
for i in range(0,len(a)):
if a[i]==a[i+1]:
sum1=sum1+c[i]
d[i].append(a[i])
e[i].append(sum)
else:
d[i+1].append(a[i])
e[i+1].append(sum1)
print d
打印e
回溯(最近一次呼叫): 文件“None”,第18行,in 索引器错误:列表索引超出范围
看起来这应该重写为:
编辑:根据您上面的评论,您似乎正在扫描tcp日志文件并将每个端口的总传输量相加。在
所以我创建了一个名为
payloads
的字典,其中payloads[port]
保存了该端口所有有效负载的总和;此外,我将其设置为defaultdict(int)
,这意味着如果我请求payloads[port_I_havent_seen_yet]
,它会自动创建并返回一个新的条目==0,而不是抛出一个KeyError。在然后,我扫描文件的每一行,并在执行时更新
payloads
。在最后,
^{pr2}$sorted(payloads)
得到payloads
键的列表(我遇到的所有端口),并按升序对其进行排序;然后打印出每个端口及其总负载。根据您的示例数据,您应该看到希望这有帮助!在
您要附加到不存在的列表元素:
这相当于:
^{pr2}$这会给你同样的错误。我不知道你想在d和e中加入什么,但你可以附加到它们的后面,但不能附加到不存在的元素上。在
看来字典是这个应用程序的更好选择。在
我不完全了解你在尝试什么,但这将检查一下是否已经找到了这个项目。如果没有,它将创建一个空列表以附加到。然后它会附加此项的条目。在
相关问题 更多 >
编程相关推荐