【发布时间】:2016-03-08 02:44:47
【问题描述】:
我是数据结构的新手,我在从多个 .txt 文件中提取特定信息时遇到了一些麻烦。我想对垃圾输入文件中的特定信息进行分组。
文件格式如下:
---------------------------------------------------
Block 1
---------------------------------------------------
Block 2
---------------------------------------------------
Block 3
---------------------------------------------------
.
.
.
用作输入的随机 .txt 文件 (parsed.txt) 如下所示:
---------------------------------------------------
Timestamp: 1453939200(2016-01-28 01:00:00)
Peer AS Number: 37989
Local AS Number: 12654
Peer IP Address: 203.123.48.6
Local IP Address: 193.0.4.28
---------------------------------------------------
Timestamp: 1453939200(2016-01-28 01:00:00)
Peer AS Number: 1836
Local AS Number: 12654
Peer IP Address: 146.228.1.3
Local IP Address: 193.0.4.28
---------------------------------------------------
Timestamp: 1453939200(2016-01-28 01:00:00)
Peer AS Number: 1836
Local AS Number: 12654
Peer IP Address: 146.228.1.3
Local IP Address: 193.0.4.28
---------------------------------------------------
Timestamp: 1453939200(2016-01-28 01:00:00)
Peer AS Number: 1836
Local AS Number: 12654
Peer IP Address: 2a01:2a8::3
Local IP Address: 2001:67c:2e8:2:ffff:0:4:28
必填:
每个块中的主要字段是“本地 AS 编号”。我想读取每个块,检查“本地 AS 编号”并更新某种数据结构,例如:
- 如果是新的,则创建一个 (Table, List,... ) 并以其为名称包含 其他 3 个字段作为列(列名将是该字段的 各自的名称),并用各自的值填写字段。
- 如果“本地 AS 编号”已在之前的块中读取,则只需 填写现有表格的其他字段。
结果应该是这样的:
AS 12654
Timestamp Peer AS Number Peer IP Address Local IP Address
1453939200 1836 146.228.1.3 193.0.4.28
1453939200 1836 146.228.1.3 193.0.4.28
1453939200 1836 2a01:2a8::3 2001:67c:2e8:2:ffff:0:4:28
我尝试了一些字符串操作,但结果一团糟,所以我想应该有一个更合适的数据结构。 请注意,表格必须处于活动状态才能更新,直到最后一个 .txt 文件被解析。这是一个我完全不知道从哪里开始解决的问题。
【问题讨论】:
-
提示:列表字典是您的烦恼的答案。等我今晚晚些时候有时间,如果没有人满意地回答这个问题,我会写一个详细的答案。另外,写得很好的问题!
-
我会检查字典并尝试提供解决方案,但我也期待您的回答!
标签: python arrays list data-structures