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

2024-06-16 13:35:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想逐字读入一个文件的特定行(UTF-8编码格式)。我可以用代码读整行:

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

T=read_language.readline()

主要问题是utf-8空间与普通空间字符不一样。你知道吗

这是为了阅读林赛,但我想读每一行字,并知道每个字的索引号。我还想把它和预定义的单词进行比较。你知道吗

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


Tags: 文件代码编码readhereis格式空间
2条回答

此函数将读取一行并打印所有单词。它使用空格(\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函数,并对单词执行您想要的任何逻辑。你知道吗

    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)格式的特定索引也是如此

相关问题 更多 >