我有一個txt文件(基本上是一個日誌文件)有文本塊。每個塊或段落都有關於事件的某些信息。我需要的是僅從每個塊中提取特定信息並將其保存爲數組或列表。閱讀txt文件的特定字段,並將它們存儲在一個numpy數組中
每個段落有以下格式:
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)
但它只是提取所有塊,並將它們放入一個單一的陣列,這是一種無用的給我我下面的編號,名稱等
可以在任何的價值觀 - 我在'名稱看,特別是:' - 包含空格 – DSM 2013-03-11 15:04:15
他們這樣做讓我與我使用的代碼片段更新我的問題?!提取所有帶有Name參數的行(儘管我無法刪除空格和換行符) – khan 2013-03-11 15:05:48