Мне нужно проанализировать следующий вывод команды CLI:
DS US DS US
VC:VS MAC-ADDRESS IP-ADDRESS SW-VERSION STATUS CLOCK RF RF CHN CHN
------- -------------- ------------------------------ ------------------ --------------- -------- -- -- --- ---
1:0 0020.a324.7043 3000:200:200:142::50 1.9.0.0-8+auto4 online unlocked 1 2 158 12
Итак, я использовал функцию print_csv в пакете panda следующим образом.
scr_columns = ["VC:VS", "MAC-ADDRESS", "IP-ADDRESS", "VERSION", "STATUS", "CLOCK", "DS RF", "US RF", "DS CHN", "US CHN"]
dataframe = pd.read_csv(
StringIO(output),
index_col=0,
sep='/s+',
skiprows=3,
skip_blank_lines=True,
skipfooter=0,
engine="python",
names=scr_columns)
dataframe.index.name = "VC:VS"
return dataframe
когда вывод - это вывод, который я написал выше.
Теперь проблема в том, что я получаю следующий фрейм данных:
MAC-ADDRESS IP-ADDRESS ... DS CHN US CHN
VC:VS ...
1:0 0020.a324.7043 3000:200:200:142::50 ... 158 12
и когда я его печатаю с помощью следующей команды:
logger.debug('Received :\n'
'{}'.format(tabulate(dataframe, headers=scr_columns.columns)))
Я получаю следующий вывод таблицы:
Received:
MAC-ADDRESS IP-ADDRESS VERSION STATUS CLOCK DS RF US RF DS CHN US CHN
--- -------------- -------------------- --------------- -------- -------- ------- ------- -------- --------
1:0 0020.a324.7043 3000:200:200:142::50 1.9.0.0-8+auto4 online unlocked 1 2 158 12
, в которой отсутствует строка первого столбца VC:VS
, а не все остальные строки, и я предполагаю, что это происходит, потому что индексированные строки находятся в двух строках, а не в одной строке в выводе.
Можно ли как-нибудь решить эту проблему, не написав свой собственный парсер ??