テキストのブロックを含む 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、名前などのパラメーターに従っていることを考えると、これは役に立たない.