我有一个包含文本块的 txt 文件(基本上是一个日志文件)。每个块或段落都有关于事件的某些信息。我需要的是从每个块中仅提取特定信息并将其保存为数组或列表。
每个段落的格式如下:
id: [id] Name: [name] time: [timestamp] user: [username] ip: [ip_address of the user] processing_time: [processing time in seconds]
示例段落可以是:
id: 23455 Name: ymalsen time: 03:20:20 user: ymanlls ip: 230.33.45.32 processing_time: 05
我需要从每个块中提取的是:
id:[]
Name:[]
processing_time: []
这样我为每个块的结果生成的数组将是:
array = [id, name, processing_time]
一个问题是我的文本文件相当大,并且有数千条这样的记录。在 Python 中做我需要做的事情的最佳方法是什么(准确地说是 2.7)。一旦我有了每个数组(对应于每条记录),我会将它们全部保存在一个 ND numpy 数组中,就是这样。任何帮助将不胜感激。
这是我用来清楚地提取所有以 ID 开头的行的东西:
import string
log = 'log_1.txt'
file = open(log, 'r')
name_array = []
line = file.readlines()
for a in line:
if a.startswith('Name: '):
' '.join(a.split())
host_array.append(a)
但它只是提取所有块并将它们放入单个数组中,考虑到我遵循 Id、name 等参数,这有点没用。