Как скопировать строки из нескольких файлов базы на условиях в 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 коротким и эффективным
  • Python: ImportError: /usr/local/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyUnicodeUCS2_Replace
  • Удаление возвратов каретки, вызванных чтением строки
  • Застрял в цикле while при использовании оператора if
  • Python разделяет строку на кавычки
  • Использование регулярного выражения для замены данных файла
  • Python: циклически перебирать элемент списка x раз?
  • Ошибка сегментации Python?
  • Разочарование пытается создать графический интерфейс для скрипта python
  • Реализация базы данных python
  • фильтр список значений в словаре
  •  
    Interesting Posts for Van-Lav

    Создайте скрипт python, который запускается при запуске

    фляжка не может читать статический путь и загружать файлы Javascript

    Получение внешнего IP-адреса устройства

    python произвольно увеличивает итератор внутри цикла

    python проверяет, находится ли слово в определенных элементах списка

    Как добавить новый элемент в столбец pandas.DataFrame, который является списком?

    Нет двоичного файла pip после установки Python 3.4.2 на Centos 6.5

    Как сгенерировать полезное тензорное произведение двух матриц в Python

    Как я могу работать с несколькими общими пользовательскими интерфейсами?

    Отправка сообщений и журналов с помощью Scrapy

    Настройка MongoDB + Django

    Разделить строки с несколькими разделителями?

    Проблема с Django с использованием Apache2 (mod_wsgi), Occassionally «неспособна импортировать из модуля» без видимых причин

    Как разбирать str (my_datetime) с помощью strptime?

    Тег Docstring для ключевого слова 'yield'

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