2016-08-13 3 views
-1

У меня есть текстовый файл с данными, как:Замена специальных символов питона

a Next-hop=path 
a 10.230.2.91 
a Next-hop=path 
a 10.229.5.239 
a 10.229.6.239 

Я хочу, чтобы это выглядело как:

12  Next-hop=path 
12  10.230.2.91 
55  Next-hop=path 
55  10.229.5.239 
55  10.229.6.239 

Это означает, что каждый раз, следующий прыжок = путь там, первый столбец в текстовом файле должен читать данные, подобные 12,55, из другого «текстового» текстового файла, который имеет строки типа 12,55 и заменяет «a» в исходном текстовом файле. Любая помощь для этого с помощью python? благодаря!

+0

Пожалуйста, ваши код до сих пор. Также отправьте образец второго входного файла, поскольку описание нечеткое, например. это отдельная строка с разделителями-запятыми или есть несколько строк во втором файле? – mhawke

+0

@mhawke второй файл имеет несколько строк, я хочу выбрать одну строку из второго txt-файла и поместить его сначала, пока не встретится другой «следующий-hop = path». – alisha

+0

Значит, это единственное число в строке? Отправьте пример и ваш код. – mhawke

ответ

0

Вы должны сначала прочитать файл

f = open('filename.extension') 
lines = f.readlines() 

, то вы можете перемещаться по линиям и извлекать a и Next-hop=path с помощью

for cur_line in lines: 
    contents = cur_line.split() 

и сравнить строку во втором Agains колонке ваш маркер. Ввести переменную строчной переменной и изменить ее каждый раз, когда вы сталкиваетесь с Next-hop=path. Иначе просто заменить старое значение

if contents[1] == "Next-hop=path": 
    replacementString = read_replacement_string() 

contents[0] = replacementString 

затем записать новое содержимое в файл

+0

ваш код выглядит великолепно, но я должен прочитать строку замены из файла, как я могу использовать два для петель для этой цели, далее в руководстве PLS. Благодаря! – alisha

+0

Вы можете прочитать второй файл, как первый, и предварительно обработать контент, чтобы получить список заменяющих строк. то вы можете просто индексировать список 'replacementStringList [rep_index]' и вместо того, чтобы использовать приведенный выше код для получения новой строки замены, введите что-то вроде 'if contents [1] ==" Next-hop = path ": rep_index + = 1 ' затем замените содержимое следующим образом: ' contents [0] = replacementStringList [rep_index] ' – meetaig

+0

благодарит за помощь! – alisha

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