【问题标题】:Read Multiple files one by one and extract the content based on different variables for each file一个一个地读取多个文件,并根据每个文件的不同变量提取内容
【发布时间】:2020-06-15 09:09:28
【问题描述】:

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

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

例如,我在 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)

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

谢谢!

【问题讨论】:

  • 我在理解您的问题时遇到了问题。过滤中使用的文件(csv_file)如何?

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


【解决方案1】:

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

Read csv with pandas

Subset a dataframe with pandas

【讨论】:

  • 我编辑了我的问题,请指导如何进一步处理@DeveR
  • “将所有文件放在一个字符串中”是什么意思?你能展示一下 1 或 2 文件是什么样子(kite.com/python/answers/…)以及预期的输出是什么(只是想知道)?你想过滤一些行还是什么?
猜你喜欢
  • 2023-01-10
  • 2020-09-05
  • 2013-03-06
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 2016-12-25
  • 2012-12-09
  • 2020-10-06
相关资源
最近更新 更多