2015-02-25 4 views
0

У меня возникли проблемы с копированием информации из файла конфигурации для переключателей, с которыми я работаю. Когда я запускаю сценарий ниже, он дает мне полную строку «Switchport Access Vlan 99», например. Проблема в том, что я просто хочу/нуждаюсь в ней, чтобы вернуть «Vlan 99». Какие-либо предложения?Python - печать определенной части строки конфигурации

input_file = open('X:\\abc\\def\\ghi.txt', 'r') 
output_file = open('X:\\abc\\def\\jkl.txt', 'w') 
for line in input_file: 
    if "vlan" in line: 
     print(line) 
     output_file.write(line) 

ответ

1

Учитывая, что все линии начинается с «» Access порта коммутатора, вы можете просто использовать метод струнный replace

line = "Switchport Access Vlan 99" 
interesting_part = line.replace("Switchport Access ", "") 
+0

Благодарим вас, я могу приспособить это, чтобы использовать для нескольких разных вещей, похожих на файлы конфигурации, с которыми я работаю. Услышал совет, говорящий попробовать и использовать string.split или .rsplit для него. –

+0

Рад помочь, пожалуйста, примите мой ответ, если он был полезен для вас, и добро пожаловать в Stackoverflow – Johan

0

В зависимости от содержимого файлов, которые вы, возможно, придется сделать что-то другое.

Если каждый вроде «Некоторый случайный текст Vlan 99», то вы могли бы использовать:

for line in input_file: 
    if "vlan" in line: 
    s = line[line.find("Vlan"):] 
    print(s) 
    output_file.write(s) 

line.find("text") возвращает индекс строки, если найдены, -1 в противном случае. line[N:] возвращает подстроку из индекса в конец.

Для получения другого способа получения подстроки вы можете посмотреть в line.split(), а затем взять последний элемент этого списка, чтобы получить свой номер.

Смежные вопросы