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

问题描述 投票:0回答:2

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

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

T=read_language.readline()

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

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

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

python file-handling python-unicode
2个回答
0
投票
    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()

this works for me for specific index even in utf-8(unicode) format


0
投票

此功能将读取一行并打印所有单词。它使用白色空格(\ 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循环中添加compare函数,并使用该单词执行所需的任何逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.