Как разбить таблицу в текстовом файле в Python?

Предположим, что в файле есть таблица:

VLan    Interface       State

Vlan1       Fa0/0       Up

Vlan2       Fa0/1       Down

Vlan3       Fa0/3       Up

Теперь мне нужно получить имя VLan & Interface, состояние которого установлено. Но для этого мне нужно сначала разделить таблицу. Я новичок в Python и не могу понять, как разделить эту таблицу.

2 ответа

Итерация по строкам из второй строки (используйте next для этого) и проверьте, является ли состояние " Вверх", и добавьте их (или сделайте то, что вы хотели бы сделать).

with open('test.txt','r') as f:
    next(f)
    l = [line.split()[1] for line in f if line.split()[2] == "Up"]

print(l)

Выход:

['Fa0/0', 'Fa0/3']

Кстати, даже если вы не используете next это нормально.

Учитывая, что ваши данные содержатся в data/table.txt здесь код для извлечения контента в структурированном виде и отфильтровывать только те интерфейсы, которые Up

file_path = 'data/table.txt'

with open(file_path) as f:
    content = f.readlines()

# it removes the empty lines
clean_content = [l for l in content if l != '\n']

# remove the line terminator for each line
lines = [l.replace('\n', '') for l in clean_content]

# attributes of the dictionary
dict_attrs = lines[0].split()

interfaces = [dict(zip(dict_attrs, l.split())) for l in lines[1:]]

interfaces_up = [i for i in interfaces if i['State'] == 'Up']

Результат: [{'VLan': 'Vlan1', 'Interface': 'Fa0/0', 'State': 'Up'}, {'VLan': 'Vlan3', 'Interface': 'Fa0/3', 'State': 'Up'}]

Другие вопросы по тегам