我想逐字逐句读取文件的特定行(采用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以执行进一步的操作。
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()
此功能将读取一行并打印所有单词。它使用白色空格(\ 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函数,并使用该单词执行所需的任何逻辑。