2016-04-25 34 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

相关问题