如何读取和比较以utf-8格式保存的文件的单行中的不同单词?在 python?

how to read and compare different words in a single line of a file which is saved in utf-8 format? in python?

我想逐字逐句地读取文件的特定行(UTF-8 编码格式)。我可以用代码阅读整行:

read_language = open(X, "r", encoding='UTF8') # here X is a predefined file name

T=read_language.readline()

主要问题是 utf-8 space 与普通 space 字符不同。

这是为了阅读 linse 但我想从行中读取每个单词并知道每个单词的索引号。我也想将它与预定义词进行比较。

我文件中的字符串是समीकरण ज + अ。我想读第一个词 (समीकरण),然后是下一个词,依此类推,直到该行结束。我还想比较检查 if 语句中的 +s 以执行进一步的操作。

此函数将读取一行并打印所有单词。它使用空格 (\s) 的正则表达式拆分行,并使用 enumerate 函数添加索引。

def read_words(file_name):
    with open(file_name, "r", encoding="UTF8") as read_language:
        line = read_language.readline()
        for idx, word in enumerate(re.split(r"\s", line)):
            print (idx, word)

您可以使用 yield 将其升级为生成器:

def read_words(file_name):
    with open(file_name, "r", encoding="UTF8") as read_language:
        line = read_language.readline()
        for idx, word in enumerate(re.split(r"\s", line)):
            yield (idx, word)

您可以在 for 循环中添加比较函数,并使用单词执行任何您想要的逻辑。

    read_language = open(X, "r", encoding='UTF8')#X and Y are predefined filenames 
    output_file = open(Y, "w", encoding='UTF8') 
    T=read_language.readline()
    for idx, word in enumerate(re.split(r"\s", T)):
        print (idx, word)
        if idx==2:
            print(word)
            output_file.write(word)
   read_language.close()
   output_file.close()

即使是 utf-8(unicode) 格式,这对我也适用于特定索引