Задать вопрос
@MilkaBin

Как считать файл и разбить текст на списки строк?

Здравствуйте!

Долго не могу разобраться с вот таким вопросом:
при решении задачи, где нужно посчитать количество строк в тексте, в которых встречается определённое слово, столкнулась с тем, что не могу разбить текст на списки строк.
Есть файл с текстом в формате txt: содержимое файла:

text = """Hello everyone, welcome to the party! I said hello to my friend hello when I saw her in the park. Hello, how are you today? I hope everything is going well. She waved and said hello with a big smile on her face. After a warm hello, we started talking about our plans for the weekend."""

Программа должна вывести ответ 3, так как в трех строках встречается слово 'hello'.
В первой строке, во второй и в третьей. Но моя программа выводит 1, так как все содержимое файла считывает в одну строку.

функция подсчета слов:

from typing import TextIO

def count_articles(stream: TextIO, topic: str = "hello") -> int:
    topic = topic.lower()  
    article_count = 0
    
    for line in stream:
        line = line.lower()  
        words = line.split()  
        
        if topic in words:
            topic_article_count += 1  
    
    return topic_article_count

with open('hello.txt', 'w') as file:
    file.write("Hello everyone, welcome to the party! I said hello to my friend  hello when I saw her in the park. Hello, how are you today? I hope everything is going well. She waved and said hello with a big smile on her face. After a warm hello, we started talking about our plans for the weekend.")

with open('hello.txt', 'r') as file:
    count = count_articles(file, topic="hello")
    print(count)


А нужно, чтобы каждая строка, считывалась в отдельный список:

[Hello everyone, welcome to the party! I said hello to my friend hello when I saw ]
[her in the park. Hello, how are you today? I hope everything is going well. She waved and]
[said hello with a big smile on her face. After a warm hello, we started talking about our]
[plans for the weekend.]

Подскажите, как это реализовать? Заранее Спасибо!
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 1 комментарий
Ответ пользователя Vindicar К ответам на вопрос (2)
Vindicar
@Vindicar
RTFM!
Так файл самостоятельно надо сформировать, или он уже сформирован?
И что считается строкой? Одно предложение? Или как в конце вопроса?
Самый простой вариант - вставь в записываемую строку символ перевода строки (\n) в нужных местах.
Например, f.write('foo\nbar\nbaz) даст
foo
bar
baz
Ответ написан
Комментировать