2015-08-28 84 views
0

更換整個字符串,如果它包含特定字母/字符...更換整個字符串,如果它包含特定字母/字符

我有一個文本文件(MYFILE.TXT),其中包含多行,例如:

熱狗
目標
山羊

我想要做的是以下幾點:

如果文件中的任何字/字符串包含字符「走」,那麼,同一個品牌的新單詞/字符串(「舟」)替換它,所以輸出應該是這樣的:

的熱狗

我怎樣才能在Python 2.7做到這一點?

with open('myFile.txt', 'r+') as word_bank: 
    new_lines = [] 
    for line in word_bank: 
     new_line = [] 
     for word in line.strip().split(): 
      if 'go' in word: 
       new_line.append('boat') 
      else: 
       new_line.append(word) 
     new_lines.append('%s\n' % ' '.join(new_line)) 
    word_bank.truncate(0) 
    word_bank.seek(0) 
    word_bank.writelines(new_lines) 

打開進行讀取和寫入文件,遍歷它分割每行到組件的單詞和尋找的「走出去」的實例來代替:

+0

我想你忘了問一個問題。 –

+0

什麼是算法?即使它不包含字符「go」(至少不是按照該順序),您也可以替換「The hotdog」,並且替換也不一致:第2行爲g-> r,第3行爲g-> b –

+0

我的不好! 「熱狗」線不會被替換,因爲它不包含「去」。你是對的! – elyoe011

回答

0

像你想這樣的事情聽起來。保持列表,因爲你不要想修改你正在迭代的東西。你會有一段糟糕的時光。一旦構建,截斷文件(擦除它)並寫出你想出來的東西。注意我轉而堅持明確的'\n'到底,因爲writelines不會爲你做到這一點。

+0

這是它new_line.append(「船」),但不是替換文件內的文字(「目標」,「山羊」)。抱歉!我是新來的。 – elyoe011

+0

@ elyoe011沒關係。不過,我不確定我是否理解這個問題。你的意思是它沒有在原始文件中替換它們嗎?我沒有回信。我只是使用'print',所以你可以瞭解輸出。 –

+0

正確!不是在原始文件中替換它們。我想要做的就是......如果它發現一個包含「go」的單詞,用單詞「boat」替換整個單詞(包含「go」的單詞) – elyoe011

相關問題