У меня есть какой-то общий индекс, импортированный с
f = open(indexfile, "r")
, и в результате получается объект _io.TextIOWrapper, который выглядит следующим образом:
GROUP_FIELD_NAME:ID
GROUP_FIELD_VALUE:1
GROUP_FIELD_NAME:NAME
GROUP_FIELD_VALUE:Joe
GROUP_OFFSET:0
GROUP_LENGTH:1234
GROUP_FILENAME:/tmp/something1
GROUP_FIELD_NAME:ID
GROUP_FIELD_VALUE:2
GROUP_FIELD_NAME:NAME
GROUP_FIELD_VALUE:Jenny
GROUP_OFFSET:1235
GROUP_LENGTH:12
GROUP_FILENAME:/tmp/something2
Где могут быть некоторые поля данныхизвлекается путем объединения соответствующих _NAME и _VALUE, а некоторые поля просто требуют просмотра имени (_OFFSET, _LENGTH, _FILENAME).Например, просматривая каждую строку и заполняя списки, что-то вроде этого:
Import pandas as pd
ID = []
NAME = []
GROUP_LENGTH = []
GROUP_OFFSET = []
GROUP_FILENAME = []
for line in file:
if GROUP_OFFSET then add to list
if GROUP_FIELD_NAME:ID then add GROUP_FIELD_VALUE from next line
a = {'ID': ID,
'NAME': NAME,
'GROUP_LENGTH': GROUP_LENGTH,
'GROUP_OFFSET': GROUP_OFFSET,
'GROUP_FILENAME': GROUP_FILENAME
}
df = pd.DataFrame.from_dict(a, orient='index')
df = df.transpose()
Как мне получить что-то вроде этого:
ID NAME GROUP_LENGTH GROUP_OFFSET GROUP_FILENAME
1 Joe 1234 0 /tmp/something1
2 Jenny 12 1235 /tmp/something2