Копирование текстового файла в список, абзац за абзацем в Python

#python #python-3.x #format #paragraph

#python #python-3.x #форматирование #абзац

Вопрос:

Я пишу код, который берет длинный текстовый файл, определенным образом форматирует каждый абзац и выводит выходные данные на консоль. Я придумал разные способы сделать это, но все они действительно длинные и громоздкие. Я просто хотел узнать, есть ли команда или что-то еще, что могло бы это сделать. Возможно, модифицированная версия .format() или re команды. Спасибо

Текст выглядит следующим образом:

 diffindere. 3. Et adhuc singulorum supplicia narro: quid si tibi
libuerit, relictis in quos ira uiritim exarsit, aspicere caesas gladio
contiones et plebem inmisso milite contrucidatam et in perniciem
promiscuam totos populos capitis damna

4.tamquam aut curam nostram deserentibus aut auctoritatem
contemnentibus. Quid? gladiatoribus quare populus irascitur, et tam
inique ut iniuriam putet quod non libenter pereunt? contemni se
iudicat et uultu gestu ardore ex spectatore in aduersarium uertitur.
  

Вывод будет зависеть от того, как я его форматирую, но все останется в абзацах. Например, я мог бы отформатировать его, заменив все запятые точками, тогда конечный результат был бы таким:

 diffindere. 3. Et adhuc singulorum supplicia narro: quid si tibi
libuerit. relictis in quos ira uiritim exarsit. aspicere caesas gladio
contiones et plebem inmisso milite contrucidatam et in perniciem
promiscuam totos populos capitis damna

4.tamquam aut curam nostram deserentibus aut auctoritatem
contemnentibus. Quid? gladiatoribus quare populus irascitur. et tam
inique ut iniuriam putet quod non libenter pereunt? contemni se
iudicat et uultu gestu ardore ex spectatore in aduersarium uertitur.
  

Комментарии:

1. Чем абзацы отличаются друг от друга? Новые строки?

2. Возможно, что NLTK может сделать то, что вы хотите. nltk.org

3. Да, @UrielEli абзацы в значительной степени разделены символами новой строки, как обычный текст. Возможно, разделите каждый абзац на список, отформатируйте их, а затем присоедините к ним позже.

4. Я просматривал .split и хотел посмотреть, смогу ли я это использовать

5. Вам нужно что-то вроде prettyprint? Но очень сложно помочь без примера.. Попробуйте добавить ожидаемый результат с помощью примера

Ответ №1:

Пустая строка состоит из новой строки, текста нет, а затем новая строка, так что практически nn .

Используйте .split метод:

 par = open('file.txt').read().split('nn')
  

Сохранит абзацы (разделенные новыми строками) в виде массива строк внутри par .

Затем вы можете обработать эти абзацы, а позже объединить их обратно:

 text = 'nn'.join(par)
  

Комментарии:

1. Правильно! какой я глупый. Тогда функция разделения должна работать нормально. Я действительно перестарался усложнять это. Извините