一对一读取多个文件,并根据每个文件的不同变量提取内容

时间:2020-06-15 09:09:28

标签: python python-3.x pandas csv pyshark

我是python的新手,我已经在目录中设置了Pcap文件。我应该阅读每个文件,并根据每个文件的不同变量提取所需的数据。我正在使用pyshark解析pcap。

我必须将csv文件列作为每个过滤文件的输入

enter image description here

例如,我在 src-和dst-中各有4个文件,因此应该仅通过选择10.272.726.227过滤我的第一个文件,对于第二个文件10.272.726.228等过滤我...

请参见下文

files = os.listdir('./Pcap')
csv_file=pd.read_csv('input.csv')
ip_src = csv_file.SRC_privateIp.tolist()
ip_dst = csv_file.DST_privateIp.tolist()  

for file in files:
    if file.startswith('src-'):
        cap_src = pyshark.FileCapture(file, only_summaries = True)
        for packet in cap_src:
            line=str(packet)
            formattedline = line.split(' ')
            if formattedline[2] == ip_src and formattedline[3] == ip_dst:
                print(formattedline)

    if file.startswith('dst-'):
        cap_src = pyshark.FileCapture(file, only_summaries = True)
        for packet in cap_src:
            line=str(packet)
            formattedline = line.split(' ')
            if formattedline[2] == ip_dst and formattedline[3] == ip_src :
                print(formattedline)

我试图打开每个文件并分别对每个文件进行处理,但是它将所有文件数据都放在一个字符串中。我希望每个文件一个一个地打开,进行处理,因为每个文件都有不同的条件来过滤掉必要的文件。上面的代码给出了错误此事件循环已在运行。我不知道该如何进一步进行下去,有人可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不明白您的问题是什么,但是我认为您可以使用pandas来进行csv的阅读,设置和操作。它是用于此类任务的标准库。

Read csv with pandas

Subset a dataframe with pandas