Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
乌尔都语字符串看起来一样,但相比之下发现不相等的python3_Python_Python 3.x_Unicode_Utf 8_Urdu - Fatal编程技术网

乌尔都语字符串看起来一样,但相比之下发现不相等的python3

乌尔都语字符串看起来一样,但相比之下发现不相等的python3,python,python-3.x,unicode,utf-8,urdu,Python,Python 3.x,Unicode,Utf 8,Urdu,在我的应用程序中,我在文本文件中列出了(乌尔都语)单词列表(目前只有这样一个单词) 我还有另一个文本文件,上面有乌尔都语字符串(目前只有一个单词像这样,完全相同) 现在我需要找出字符串文件的字符串是否有word文件中存在的任何单词。为此,我将这两个文件读入如下列表 for string in lstFileData: if string in lstWords: // do further work //正在读取字符串的文本文件 fileToRead = codec

在我的应用程序中,我在文本文件中列出了(乌尔都语)单词列表(目前只有这样一个单词)

我还有另一个文本文件,上面有乌尔都语字符串(目前只有一个单词像这样,完全相同)

现在我需要找出字符串文件的字符串是否有word文件中存在的任何单词。为此,我将这两个文件读入如下列表

for string in lstFileData:
    if string in lstWords:
        // do further work
//正在读取字符串的文本文件

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中有这个字符串。我需要添加一些编码吗?任何形式的帮助都将不胜感激。

刚刚在python3中试用过,它似乎对我有用:

lstWords = ['a', 'فلسفے', 'b']
string = 'فلسفے'
if string in lstWords:
    print("yes")
编辑:同样,刚刚用文件IO测试了更新的代码,效果很好(我没有指定编码)。以下是it工作的链接:

也许对我这样的人有帮助


虽然听起来很有趣,但问题在于
文件编码类型。我用简单的记事本打开文件进行了一些更改并保存了它。它将我的文件从
utf-8
更改为
utf-8bom
。而我的代码却不起作用。一旦我用utf-8在notepad++中创建了新文件,同样的代码就可以正常工作了。(因为问题不在代码中,而是在文件编码中)

它应该可以正常工作,你最好再添加一点代码好的,让我详细添加它。请检查更新的问题是的,它完全是一样的,并且假设它可以工作,但它不是。我认为还有其他问题。查看我更新答案中的链接,可以看到代码在python3中运行良好。。该问题已存档。我在记事本中打开它并更新了..这个东西将它从utf-8更改为utf-8 BOM。我猜这就是问题所在。有一次,我用notepad++创建了一个新文件,并将其保存为utf-8。同样的代码开始运行良好。它可能对未来的读者很有帮助,但在当前非常具体的标题中不太可能找到它;考虑把它变成更一般的东西,比如“看起来相同的字符串,不相等的”或类似的东西。顺便说一句:用UTF8 BOM打开文件的正确编码在Python中称为“utf-8-sig”。否则(如果使用“utf-8”解码),BOM字符将粘贴到内容的开头。