Как подсчитать статьи и поместить их в список

У меня есть текстовый документ, состоящий из нескольких статей, разделенных токеном <NEW DOCUMENT>

Я хотел бы разместить каждую статью в списке

так, например, если у нас есть txt-файл:

<NEW DOCUMENT> Hello world Hello World <NEW DOCUMENT> Ранняя птица Ранняя птица

Я бы хотел, чтобы List1 был: Hello world Hello World

Список2: Ранняя птица Ранняя птица

Теперь я не знаю, сколько списков мне нужно создать, поэтому сначала мне нужно будет подсчитать токен <NEW DOCUMENT>.

Во-вторых, я хотел бы разместить каждую статью в списке.

вот моя программа

#program 1 textFile = open("docs.txt" , "r") lines = textFile.read() count = 0 #count how many articles there are for line in textFile: if line.strip() == '<NEW DOCUMENT>': count = count + 1 #place articles in lists textFile.close() 

Я получаю 0 для подсчета, и я не уверен, как начать ставить их в списки

2 Solutions collect form web for “Как подсчитать статьи и поместить их в список”

Предполагая, что этот текстовый документ не является гигантским, и предполагая, что вам нужен список формы ['Hello world Hello World', 'Early Bird Early Bird'] :

 with open('myfile.txt', 'r') as myfile: print([item.strip() for item in myfile.read().split('< NEW DOCUMENT>') if item]) 

Если вам нужны вложенные списки формы [['Hello', 'world', 'Hello', World'], ['Early', 'Bird', 'Early', 'Bird']] :

 with open('myfile.txt', 'r') as myfile: print([[myitem for myitem in item.strip().split(' ')] for item in myfile.read().split('< NEW DOCUMENT>') if item]) 

Если токен появляется в строке, а рядом с ним ничего нет:

 newDoc = "<NEW DOCUMENT>" listOfDocumetns = [[]] with open('path/to/text/file') as infile: for line in infile: line = line.strip() if line == newDoc: listOfDocuments.append([]) continue listOfDocuments[-1].append(line) 

Если токен отображается в строке, а другой текст рядом с ним:

 newDoc = "<NEW DOCUMENT>" listOfDocumetns = [[]] with open('path/to/text/file') as infile: for line in infile: line = line.strip() if newDoc not in line: listOfDocuments[-1].append(line) continue while line: left, _, right = line.partition(newDoc) listOfDocuments[-1].append(left) listOfDocuments.append([]) line = right 
  • Как определить, является ли ввод пользователем допустимым шестнадцатеричным числом?
  • Как использовать elasticsearch.helpers.streaming_bulk
  • AttributeError: объект 'module' не имеет атрибута (при использовании cPickle)
  • Более короткий способ проверить истинность в выражении понимания списка Python?
  • Как узнать, имеет ли мой список все 1s?
  • как разбить список по два в точке, где предикат сначала False
  • Эквивалент Python выражения defer golang
  • func (* args, ** kwargs, x), бросая недействительный синтаксис
  •  
    Interesting Posts for Van-Lav

    Получить stacktrace из застрявшего процесса python

    ggplot python обрабатывает данные времени в течение многих недель при часовом разрешении

    Отключение Javascript после того, как страница была отображена в Selenium Webdriver

    Как импорт работает с Boost.Python изнутри файлов python

    Вычисление с полным разрешением с помощью matplotlib.pyplot, imshow () и savefig ()?

    Как увидеть документ Python в Linux?

    Лучший способ удалить повторяющиеся символы (слова) в строке?

    Запросы – как узнать, получаете ли вы 404

    Ширина линии matplotlib при сохранении PDF-файла

    Строковые столбцы, нечувствительные к регистру в SQLAlchemy?

    PyCharm – запускать соответствующий единичный тест каждый раз, когда файл сохраняется

    Как преобразовать это для цикла в понимание списка?

    Сравнение предложений по их значению

    NumPy / OpenCV 2: как обрезать непрямоугольную область?

    Какой веб-сервер использовать с Django? (обновлено для использования в 2011 году)

    Python - лучший язык программирования в мире.