将预设值与库存日志中的值进行比较?

时间:2014-06-25 13:51:47

标签: python parsing reporting

我需要检查库存日志中的值,将这些字符串与预设值进行比较,如果它们不匹配,则报告错误。

这些是所有库存日志应具有的值:

+硬件信息

处理器:Intel(R)Xeon(R)CPU E5-2420 0 @ 1.90GHz

内存:65493MB

控制器插槽:0

BIOS:3.0b 03/28/2014 3.2

IPMI FW rev:2.24

那么如何读取这些值,将它们与这些值进行比较:3.0b,2.24等,如果它们不匹配则报告错误?我现在正在处理这个问题。

 i = 0
while i < len( inventory_lines):
    m = re.search( '(^ERROR:\s+.*)', inventory_lines[i] )
    i += 1
    if m:
        arack = findRack( Lab, Rack )
        aslot = findSlot( arack, Slot )
        append_uniq_scanIssues( aslot, m.group(1) )
        print '%s SCAN ISSUES: %s' % ( linenum(), m.group(1) )

1 个答案:

答案 0 :(得分:0)

假设您的csv看起来像这样:

Processor,Memory,Controller Slot, BIOS,IPMI FW rev
Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz,65493MB,0,3.0b 03/28/2014 3.2,2.24
...

你想要这样的东西:

import csv

good_values = {
    'Processor': 'Intel(R) Xeon(R) CPU E5-2420 0 @ 1.90GHz',
    'Memory':, '65493MB'
    'Controller Slot': '0',
    'BIOS': '3.0b 03/28/2014 3.2',
    'IPMI FW rev': '2.24',
    }

for i, line in enumerate(csv.DictReader(open("INVENTORY FILE"))):
    if line != good_values:
        print "Error: on line %s" % (i)