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

У меня есть текстовый документ, состоящий из нескольких статей, разделенных токеном <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 
  • Python - API Facebook - нужен рабочий пример
  • ElasticSearch: EdgeNgrams и Numbers
  • Как проверить все элементы списка в python равны?
  • отказ от применения декоратора
  • Как быстро разобрать список строк
  • Что такое pythonic способ объявления переменных?
  • python: могут ли исполняемые файлы zip включать файлы данных?
  • нарисовать точку на экране каждые 17 мс в Python?
  • Зачем задавать локальную переменную начальное значение непосредственно перед ее назначением?
  • AppEngine urlfetch validate_certificate = False / Нет, не соблюдается
  • файл с несколькими критериями в python?
  • Python - лучший язык программирования в мире.