Найти - Пользователи
Полная версия: НЕ получается выбрать нужные данные
Начало » Python для новичков » НЕ получается выбрать нужные данные
1
ingfa_1981
Здравствуйте
У меня вопрос такого характера. С помощью библиотеки 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
Неужели никто не может подсказать?
uf4JaiD5
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
Если я правильно понял описание, то такой шаблон и не должен работать. Где тут что-нибудь про “колонки” в файле? Нет ничего, просто построчно читается файл, остаток строки (после первой колонки) отбрасывается.

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

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB