Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2019 13:07:16

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

НЕ получается выбрать нужные данные

Здравствуйте
У меня вопрос такого характера. С помощью библиотеки textfsm хотел выбрать данные из файла

+ Additional timeslot is required for management.

 + Additional timeslot is required for management.
   TS 01      TS 02      TS 03      TS 04      TS 05      TS 06
   02:01      02:02      02:03      02:04      02:05      02:06
   VOICE      VOICE      VOICE      VOICE      VOICE      VOICE
   TS 07      TS 08      TS 09      TS 10      TS 11      TS 12
   03:01      03:02      03:03      03:04      03:05      03:06
   VOICE      VOICE      VOICE      VOICE      VOICE      VOICE
   TS 13      TS 14      TS 15      TS 16      TS 17      TS 18
   01:02TS05  01:02TS01  01:02TS02  -------    01:02TS03  01:02TS04
   VOICE      VOICE      VOICE      DATA       VOICE      VOICE
   TS 19      TS 20      TS 21      TS 22      TS 23      TS 24
   03:08      03:09      03:10      03:11      03:12      01:02TS09
   VOICE      VOICE      VOICE      VOICE      VOICE      DATA
   TS 25      TS 26      TS 27      TS 28      TS 29      TS 30
   01:02TS10  01:02TS11  01:02TS12  01:02TS06  01:02TS07  01:02TS08
   DATA       DATA       DATA       VOICE      VOICE      VOICE
   TS 31
   -------
   MNG



с помощью шаблона

Value List TS (TS\s\d\d)
Value List CROSS_CONNECT (\d\d:\d\dTS\d\d|-{7}|\d\d:\d\d)

Start
^\s+${TS}
^\s+${CROSS_CONNECT} -> Continue.Record

 # coding: utf-8
import sys
import textfsm
from tabulate import tabulate
template = "shablonT130.template"
output_file = "T130"
f = open(template)
output = open(output_file).read()
re_table = textfsm.TextFSM(f)
header = re_table.header
result = re_table.ParseText(output)
print(tabulate(result, headers=header))

И я получил на выходе не все TS, а только первый столбец

 TS         CROSS_CONNECT
---------  ---------------
['TS 01']  ['02:01']
['TS 07']  ['03:01']
['TS 13']  ['01:02TS05']
['TS 19']  ['03:08']
['TS 25']  ['01:02TS10']
['TS 31']  ['-------']

Что можно сделать что бы получить все значения TS?


Отредактировано ingfa_1981 (Янв. 14, 2019 13:08:34)

Офлайн

#2 Янв. 15, 2019 09:18:27

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

НЕ получается выбрать нужные данные

Неужели никто не может подсказать?

Офлайн

#3 Янв. 15, 2019 13:44:13

uf4JaiD5
Зарегистрирован: 2018-12-28
Сообщения: 76
Репутация: +  4  -
Профиль   Отправить e-mail  

НЕ получается выбрать нужные данные

ingfa_1981
с помощью шаблона

Value List TS (TS\s\d\d)
Value List CROSS_CONNECT (\d\d:\d\dTS\d\d|-{7}|\d\d:\d\d)

Start
^\s+${TS}
^\s+${CROSS_CONNECT} -> Continue.Record
https://github.com/google/textfsm/wiki/TextFSM
Если я правильно понял описание, то такой шаблон и не должен работать. Где тут что-нибудь про “колонки” в файле? Нет ничего, просто построчно читается файл, остаток строки (после первой колонки) отбрасывается.

Этими заклинаниями вообще возможно описать такой формат?

Офлайн

#4 Янв. 15, 2019 14:23:48

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

НЕ получается выбрать нужные данные

А какую библиотеку можно использовать?

Офлайн

#5 Янв. 15, 2019 16:30:48

uf4JaiD5
Зарегистрирован: 2018-12-28
Сообщения: 76
Репутация: +  4  -
Профиль   Отправить e-mail  

НЕ получается выбрать нужные данные

Можно считать, что это csv файл. Для них должно быть много модулей.
Тогда, по крайней мере, нарезать на столбики “вручную” не придётся.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version