Как скопировать строки из нескольких файлов базы на условиях в python?

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

Файл конфигурации выглядит так:

[BeginObjects] apple banana [EndObjects] [BeginFiles] path/fileA path/fileB [EndFiles] 

Каждый из других файлов выглядит следующим образом:

 some lines ObjectAlias apple some lines Begin some lines End some lines ObjectAlias pear some lines Begin some lines End more object sections 

Я хочу скопировать строки из вышеуказанного файла в новый файл следующим образом:

 ObjectAlias apple some lines Begin some lines End 

Текущий код:

 def getObjects (fileObj):#get object list from config file fileObj.seek(0) objList = [] Tag = False for line in fileObj: if line.find("[BeginObjects]") != -1: Tag = True elif line.find("[EndObjects]") != -1: Tag = False elif Tag: objList.append(line.strip()) return (objList) def getFiles (fileObj):#get file list form config file fileObj.seek(0) fileList = [] Tag = False for line in fileObj: if line.find("[BeginFiles]") != -1: Tag = True elif line.find("[EndFiles]") != -1: Tag = False elif Tag: fileList.append(line.strip()) return (fileList) def dummyRigs (fileObj, itemObj):# dummy = "" Tag = False for file in fileObj: with open(file, "r") as infile: for line in infile: for item in itemObj: if line.find("ObjectAlias " + item + "\n") !=-1: Tag = True dummy += line elif line.find("End") != -1: Tag = False dummy += line elif Tag: dummy += line return (dummy) 

Я использую первые две функции, чтобы получить список файлов и список объектов из файла конфигурации, а затем поместить их в третью функцию для копирования строк из файлов, но она не работает должным образом: я получаю два списка из первых двух функций без проблемы, третья функция не только дает строки, которые я хочу, но и удваиваю каждую строку и много строк «Конец» (мой шаблон в третьей функции). Выглядит так:

 ObjectAlias apple ObjectAlias apple line12345 line12345 more line6789 more line6789 End End End 

Любые подсказки приветствуются.

2 Solutions collect form web for “Как скопировать строки из нескольких файлов базы на условиях в python?”

Самый простой способ проверить это, if ... in ... , вот так:

 if "[BeginObjects]" in line: print "We found the string '[BringObjects]'" 
 Tag = False for line in infile: for item in itemObj: if line.find("ObjectAlias " + item + "\n") !=-1: Tag = True if Tag: dummy += line if line.find("End") != -1: Tag = False 

Вам просто нужно изменить оператор if

  • Python автоматически выбирает последовательные порты (для Arduino)
  • Скомпилированные двоичные отчеты Python неправильной версии
  • Почему я получаю TypeError: объект 'module' не вызывается в python?
  • Попытка решить Project Euler # 10, но код занимает * много * времени для вывода вывода
  • Matplotlib просто дает сообщения об ошибках
  • Получить количество всех ключей в словаре словарей в Python
  • Как сделать запрос POST в robobrowser-python
  • Неожиданный вывод из списка (генератор)
  • Python - лучший язык программирования в мире.