当使用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
>>> 


以上是当使用f.read()每个字母的迭代循环的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>