строки урду выглядят одинаково, но в сравнении обнаружены неравные python3 - PullRequest
0 голосов
/ 06 октября 2018

В моем приложении у меня есть список (урду) слов в текстовом файле, (в настоящее время одно слово, как это)

enter image description here

и ядругой текстовый файл, содержащий строку urdu (в настоящее время одно слово, подобное этому и точно такое же)

enter image description here

Теперь мне нужно найти, имеет ли строка в файлелюбое слово, которое существует в файле слова.Для этого я читаю оба файла в списки, подобные этому;

// читаем текстовый файл строк ...

fileToRead = codecs.open('string.txt', mode, encoding=encoding)
fileData = fileToRead.read()
lstFileData = fileData.split('\n')


wordListToRead = codecs.open('words.txt', mode, encoding=encoding)
wordData = wordListToRead.read()
lstWords = wordData.split('\n')

Я просто перебираю такой список;

for string in lstFileData:
    if string in lstWords:
        // do further work

и это не работает И я не знаю почему?Хотя строка 'فلسفے' и lstWords содержит эту строку.Нужно ли добавить кодировку?Мы будем благодарны за любую помощь.

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Может быть, это помогло кому-то вроде меня

Хотя это звучит забавно, но проблема была в file encoding type.Я открыл файл в простом блокноте, чтобы внести некоторые изменения и сохранил его.Это изменило мой файл с utf-8 на utf-8 BOM.И мой код не работал над этим.Как только я создал новый файл в notepad ++ в utf-8, тот же код начал работать нормально.(Поскольку проблема была не в коде, а в кодировке файла)

0 голосов
/ 06 октября 2018

Только что опробовал его в python3, и он, кажется, работает для меня:

lstWords = ['a', 'فلسفے', 'b']
string = 'فلسفے'
if string in lstWords:
    print("yes")

Редактировать: Опять же, просто протестировал ваш обновленный код с файловым вводом-выводом, и он работает нормально (я не указал кодировку),Вот ссылка на это работает: https://trinket.io/python3/3890d8b261

...