2016-04-25 65 views
1

以下代碼是按行搜索文本文件以過濾壞行並將好行添加到新文件。出於某種原因,該文件只返回帶有' - '的行,並且沒有對任何其他詞作出響應。當從文本文件中搜索一行中的單詞時,某些單詞沒有顯示出來

這段代碼可能會導致這種情況發生嗎?或者更可能是文本文件的問題?

import re 
new=open('FilteredData.txt', 'w') 
f=open('ClusteredData.txt', 'r') 
line = f.readline() 

while line: 
    reResult = re.search(r'-',line, re.I) 
    reResult1 = re.search(r'by', line, re.I) 
    reResult2=re.search(r'ft', line, re.I) 
    reResult3=re.search(r'feat', line, re.I) 
    reResult4=re.search(r'f\.', line, re.I) 

    if reResult or reResult1 or reResult2 or reResult3 or reResult4: 
     new.write(line) 

    line = f.readline() 
+1

顯示您的新文件 –

+0

它不會讓我顯示它,因爲它包含很多鏈接,這些是從twitter API中翻錄的推文。 – erk499

+0

你爲什麼要做5次不同的're'搜索?你可以製作一個匹配它們的單個正則表達式,其中'r'| by | ft | feat | f'。' – Barmar

回答

1

由於文本編碼問題,我以前遇到類似的問題。代碼對我來說看起來很好,我使用UTF-8編碼將它在沒有任何非ASCII字符的文本文件上運行,並且工作正常。新文本文件中是否有任何亂碼?如果有的話,這可能是文本文件本身的問題。嘗試檢查您的文本是否使用正確的編碼進行編碼。

也許嘗試在文本文件的一小部分子集上運行代碼,看它是否有效。

+0

謝謝你的工作,我用UTF-16將它改爲UTF-8。 – erk499

相關問題