5 件事:
- 您引用了
col 和outcol,我认为它们实际上是list1 和list2。
-
list1 和 list2 大小不同,会崩溃
- 您没有检查
n 的边界,因此如果您的文本文件超过 4 行,它将崩溃
-
n + 1 这行实际上并没有做任何事情,它应该是n += 1
-
line.replace 不进行内联替换,它返回一个新字符串。
所以把它改成line = line.replace(...)。
我不知道你想要完成什么。该程序将第 1 行中的a 替换为a_replaced,将第2 行中的b 替换为b_replaced,将第3 行中的c 替换为c_replaced,并将第4 行中的d 替换为d_replaced。。 p>
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,