5 вещей:
- Вы ссылаетесь на
col
и outcol
, которые, как я полагаю, на самом деле list1
и list2
. list1
и list2
разных размеров, это приведет к сбою - Вы не проверяете границы на
n
, поэтому, если ваш текстовый файл длиннее 4 строк, он вылетит - Строка
n + 1
нена самом деле ничего не делать, это должно быть n += 1
line.replace
не выполняет встроенную замену, он возвращает новую строку.
Так что измените его на line = line.replace(...)
.
Я не знаю, чего вы пытаетесь достичь.Эта программа заменяет a
в строке 1 на a_replaced
, b
в строке 2 на b_replaced
, c
в строке 3 на c_replaced
и d
в строке 4 на d_replaced
.
replacements = [('a', 'a_replaced'), ('b', 'b_replaced'), ('c', 'c_replaced'), ('d', 'd_replaced')]
text = open(textfile, 'r')
n = 0
for line in text:
if n >= len(replacements):
break
print line[:-1].replace(replacements[n][0], replacements[n][1])
n += 1
Однако, если вы пытаетесь применить все замены в каждой строке, вот как:
replacements = [('a', 'a_replaced'), ('b', 'b_replaced'), ('c', 'c_replaced'), ('d', 'd_replaced')]
text = open(textfile, 'r')
for line in text:
line = line[:-1]
for oldtext, newtext in replacements:
line = line.replace(oldtext, newtext)
print line
Или более короткая версия вышеуказанной программы:
replacements = [('a', 'a_replaced'), ('b', 'b_replaced'), ('c', 'c_replaced'), ('d', 'd_replaced')]
text = open(textfile, 'r').read()
for oldtext, newtext in replacements:
text = text.replace(oldtext, newtext)
print text,