Невозможно написать полные результаты, чтобы преуспеть - PullRequest
0 голосов
/ 28 января 2020

Цель программы: Эта программа предназначена для чтения определенного файла YAML и поиска любых строк, соответствующих значению в search_event_type. Если совпадение найдено, результаты должны быть экспортированы в Excel.

Проблема: Если я изменяю function_search_search_key(lines) для печати (строки), я вижу все ожидаемые совпадения. Однако, если я использую SheetMain.write(1, 0, line), лист Excel обновляется только первой строкой совпадений.

Входной файл YAML:

search_dict:
    [
        {search_key: ["Failed to Process the file"],
        event_type: "evttyp_repl_dcn_error",
        event_description: "Failure to process DCN file",
        priority: 50,
        scan_interval: 1,
        remove_dups: True,
        category: "dcn",
        context_begin: 0,
        context_end: 1,
        reportable: False,
        offset: 0
        },
      ]

Исходный код:

import xlwt
from xlwt import Workbook

# Define wb as Workbook, name the first tab of the Workbook as 'Main' and allow cells to be overwritten.
wb = Workbook()
SheetMain = wb.add_sheet('Main', cell_overwrite_ok=True)


def function_search_search_key(lines):
    search_event_type = ['search_key:']
    for line in lines:
        for word in search_event_type:
            if word in line:
                SheetMain.write(1, 0, line)


def main():
    with open('scan_dcn.yaml', 'r') as yamlfile:
        lines = yamlfile.readlines()
        function_search_search_key(lines)
        wb.save('YAML Analysis.xls')


if __name__ == '__main__':
    main()
...