WedX - журнал о программировании и компьютерных науках

Python Find Strings в текстовом файле, записываемом в новый файл в определенной форме

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

У меня есть txt-файл в таком виде. Входной текстовый файл:

… different text
… different text
… different text
*
    <https://webadress.com/test.jpg>
    *Part ID:* 1234567
    *Design ID:* 54321
    *Part Name:* Test Object x2
    *Category:* Objects
    *Colour:* Yellow
    … different text
    … different text
    … different text

  *
    <https://webadress.com/test2.jpg>
    *Part ID:* 1234566
    *Design ID:* 54322
    *Part Name:* Test Object v4
    *Category:* Objects
    *Colour:* Red
    ... different text
    … different text
    … different text
  *

And so on…

Я хочу получить следующую информацию в следующей форме.

Выходной текстовый файл:

[http; Part ID; Design ID; Part Name; Category; Colour]
[webadress.com/test.jpg; 1234567; 54321; Test Object x2; Objects; Yellow]
[webadress.com/test2.jpg; 1234566; 54322; Test Object v4; Objects; Red]

Не могли бы вы мне помочь.


  • Это странный формат вывода, здесь лучше использовать json. 16.01.2014
  • Вы пробовали использовать регулярные выражения? 16.01.2014
  • Эти звездочки действительно есть в вашем файле, или вы просто пытались сделать эти части жирными с помощью разметки? 16.01.2014
  • эти звездочки находятся в этом файле. Это сгенерированный txt-файл... вот почему я хочу извлечь эти строки... И я отредактировал формат выходного файла, он был неправильным. 16.01.2014

Ответы:


1

Попробую дать несколько общих советов. Поскольку ваш формат ввода, а также формат вывода кажутся какими-то проприетарными (или, по крайней мере, нестандартными) форматами (в отличие от XML, JSON, YAML, ... или даже CSV), вы ничего не можете сделать. чем внедрять эти форматы самостоятельно.

Я бы начал анализировать формат входного файла в объекты Python. Похоже, что ваш входной файл содержит несколько наборов данных, тогда как каждый набор данных представляет данные одного типа, только с другими значениями. Определите себе класс, представляющий этот тип данных. Экземпляры этого класса могут удобно хранить один набор входных данных. Разберите входной файл (используйте мощные строковые методы Python или даже регулярное выражение для сбора информации) и создайте экземпляры вашего класса данных на лету. В итоге вы получите список с объектами, содержащими ваши входные данные.

На втором этапе выполните итерацию по этому списку объектов и запишите выходной файл в нужном формате. Опять же, вы, вероятно, будете интенсивно использовать методы обработки/форматирования/конструкции строк Python.

Этот тип абстракции поможет вам изолировать различные компоненты проблемы и сделать решение понятным, чистым и удобным в сопровождении.

16.01.2014
Новые материалы

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..


Для любых предложений по сайту: [email protected]