python3監控硬件設備的維保到期時間

#!/usr/bin/python3
# -*- coding: utf-8 -*-

'''
此腳本用於zabbix監控所有硬件設備的維保到期時間
'''

import xlrd,datetime,time,os
from xlrd import xldate_as_tuple
import json

class Maintence:

    def __init__(self):
        self.file = '/Users/fanht/Desktop/機房設備20190726.xlsx'
        self.today = time.time()

    @property
    def read_excel(self):

        wb = xlrd.open_workbook(filename=self.file)   # 打開文件
        sheet1 = wb.sheet_by_index(0)  # 通過索引獲取表格,表格對象
        row_message = {}
        for row in range(1,sheet1.nrows):
            line = sheet1.row_values(row) # 每一行的內容

            serial_number = line[4] # 設備序列號

            if sheet1.cell(row, 9).ctype == 3:
                date = xldate_as_tuple(sheet1.cell(row,9).value,0)
                maintenance_time = datetime.datetime(*date)  # 維保到期時間<class 'datetime.datetime'>
                ans_time = time.mktime(maintenance_time.timetuple()) # 維保到期時間時間戳
                row_message[serial_number] = ans_time
        return row_message


    @property
    def time_diff(self):

        time_dic = {}
        for key,value in self.read_excel.items():
            time_poor = int((value - self.today)/86400)# 維保時間截止今天的天數差
            time_dic[key] = time_poor
        return time_dic


if __name__ == '__main__':

    maintence = Maintence()
    a = []
    for key in maintence.time_diff.keys():
        b= {}
        b["{#SERIAL}"] = key
        a.append(b)

    print(json.dumps(a,sort_keys=True, indent=6))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章