尝试解析 Python 中的数据包并努力构建合适的脚本

Trying to parse packets in Python and struggling to build a proper script

我有一个巨大的(大约 600MB)数据包捕获文件,格式如下:

[S->C][02][0x5A97BE]
[0047F32B] 95 DE 5E 52 4A F3 80 F5 47 18 97 70 10 EE 5B E5  ..^RJ...G..p..[.
           7C E8 F5 B2 2F 1F 3A 6B A1 8F 6C 73 65 A6 42 27  |.../.:k..lse.B'

我的目标是减少整个事情,使其看起来像这样:

[S->C][02][0x5A97BE]
95DE5E524AF380F54718977010EE5BE57CE8F5B22F1F3A6BA18F6C7365A64227

我浏览了一些 string.split() 和正则表达式教程,但其中的 none 似乎很适合我。基本上我试图做一个 if 语句检查该行是否包含 [S->C] 或在第四个字符点有一个“>”。如果是这样,请跳过行。然后我想删除第一个 space 左侧的所有内容和双 space 右侧的所有内容(十六进制和 ascii 显示之间有一个双 space。)

我现在已经学习了大约 3 个教程,修改了它们,但无法正确解析。任何帮助都会很棒。我知道这并不难,但出于某种原因,它让我望而却步。

这是一种方法。将输入文件作为 myfun(input_file)

传递
def myfun(in_file):
    header = True
    # Get the meat, remove newlines.
    reg1 = re.compile(r'^.{11}(.{47}).*\n')
    # Remove spaces.
    reg2 = re.compile(r' ')
    with open(in_file) as f:
        for line in f:
            if header:
                # Print the header.
                print(line, end='')
                header = False
            else:
                # Print the body.
                print(reg2.sub('', reg1.sub('\g<1>', line)), end='')
    # Append a newline.
    print()
    return