如何读取和比较以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) 格式,这对我也适用于特定索引
我想逐字逐句地读取文件的特定行(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()