我需要测试某个字符串(例如'võiks')是否等于目录中包含的任何文件的名称。
>>>words = [ f.replace('.html', '') for f in listdir('lemma_pages/test') if isfile(join('lemma_pages/test',f)) ]
>>>words
['võibolla', 'võid', 'võiks', 'võimalik', 'võin', 'võta', 'võtan', 'võtta']
>>>'võiks' in words
False
但是当我测试它时,如果我没想到,我会得到假。我以这种方式打开包含单词的文件:
open('et_500.txt', 'rt', encoding="utf-8")
对我做得不对的任何想法?
答案 0 :(得分:2)
数据可能未正常化。在比较字符串之前,请使用以下标准化:
data = unicodedata.normalize('NFC', data)
要提供更多详细信息,õ
可以是U+00F5 (LATIN SMALL LETTER O WITH TILDE),也可以是U+0062 (LATIN SMALL LETTER B),然后是U+0303 (COMBINING TILDE)。规范化是必要的,这样无论你得到什么味道,它们都会相同地进行比较。