5件事情:
- 您參考
col
和outcol
,我認爲實際上是list1
和list2
。
list1
和list2
的大小不同,這會崩潰
- 你不檢查就
n
的界限,因此,如果您的文本文件大於4行時間越長,就會死機
- 線
n + 1
實際上並沒有做什麼,它應該是n += 1
line.replace
不做內聯替換,它返回一個新的字符串。
因此將其更改爲line = line.replace(...)
。
我不知道你在做什麼。該程序將行1中的a
替換爲第2行中的a_replaced
,b
,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
但是,如果your're嘗試應用在每一行的所有替代,方法如下:
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,
你在哪裏宣佈col和outcol?他們應該是list1和list2嗎? – thegrinner
如果你的意思是增加'n',你需要寫'n + = 1'。但是我正在努力弄清楚你希望你的程序做什麼。 – vimukthi