当使用f.read()每个字母的迭代循环
我正在遍历我的文本文件,但是当我使用 read() 函数时,循环会遍历字母而不是句子。
使用以下代码:
for question in questions: # voor elke question moet er door alle lines geiterate worden
print(f"Question: {question}")
f = open("glad.txt", "r")
text = f.read()
# text = text.replace("n", ". ")
# text = text.replace(". .", "")
# text = text.replace(".. ", ". ")
# text = text.replace(".", ".n")
#text = text.strip(".. ")
# test = text.replace('[bewerken | brontekst bewerken]', "")
# output = re.sub(r'[d+]', '', test)
for line in text:
text = str(line) #het antwoord moet een string zijn
#encoding met tokenizen van de zinnen
print(text)
输出是:
但是当我删除 f.read()
我收到了预期的结果:
我需要使用read()函数,否则我不能使用replace()函数。有没有人如何解决这个问题?
回答
f.read()将文本文件转换为字符串。因此,如果您遍历一个字符串,它将循环每个字符:
>>> for i in 'Hello World':
print(i)
H
e
l
l
o
W
o
r
l
d
>>>
而 without .read(), just f, 将逐行遍历文本文件,它将是一个字符串序列(每行),它类似于:
>>> for i in ['Hello', 'World']:
print(i)
Hello
World
>>>