2012-11-29 55 views
0

明白了。需要程序正確循環

while 1: 
    line = sub.readline().split() 
    if line == []: 
     new = main 
     break 
    else: 
     new = main.replace(line[0],line[1]) 
     main = new 

這似乎適用於我。感謝您的幫助=)。

+0

您的if else塊縮進不正確 – asheeshr

回答

0

正如Cameron所指出的那樣,這種方法每次都會覆蓋輸出文件,因此只記錄最後一次更改。

在此塊中的錯誤是:

while True: 
    word = substitute.readline().split() 
    print(word) 
    if word == []: // ---Indentation --- 
     break 
    else: 
     new = (main_story.read().replace(word[0],word[1])) 
     new_story.write(new) 

您需要閱讀完整的文件一次,進行修改和寫入文件。 或者您可以從第一個文件讀取數據,然後對新文件進行後續讀取/寫入。

+0

由於輸出文件不斷被覆蓋,而不是更新(並且文件只能被讀取一次),這將不起作用。 – Cameron

+0

@Cameron是的,我真的沒有找到那個。謝謝 :) – asheeshr

0

嘗試另一個循環,並在循環索引,你需要要發生的字交換:

我認爲sub.txt的每一行都有你想要的潛艇。讀取sub.txt的所有行,將每行存儲在可索引數組中。在你的主代碼周圍建立一個循環,並在該循環索引中通過數組引用,順序地每次你想要的sub.txt行。