Цель программы: Эта программа предназначена для чтения определенного файла 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()