以下代码逐行搜索文本文件以过滤坏行并将好行添加到新文件中。出于某种原因,该文件仅返回带有“ - ”的行,而不响应任何其他单词。
此代码是否存在可能导致此问题发生的问题?或者它更可能是文本文件的问题?
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()
答案 0 :(得分:1)
由于文本编码问题,我之前遇到过类似的问题。代码看起来很好,我已经在没有任何非ascii字符的文本文件上运行它,使用UTF-8编码,并且它可以工作。你的新文本文件中有任何乱码吗?如果有,则可能是文本文件本身存在问题。尝试检查您的文本是否使用正确的编码进行编码。
也许尝试在文本文件的一小部分上运行代码,看看它是否有效。