python中利用pyexcel模組提供excel資訊

來源:互聯網
上載者:User

公司server在進行上線前需要做合規檢查,合規平台最終會輸出一個結果總表和每台主機的細化表。在上線主機較少的情況下,可以手工的一條條的去複核,在批量一兩百台主機上線時,通過手工的一台台一條條的逐量找出不合規項再提交給工程組是一個比較花費時間的工作。這裡就結合pyexcel模組,對結果進行一個簡單的處理篩選出所有主機的不合規項。

一、批量掃描

合規平台是支援批量主機掃描的,不過其預設不支援tar包,只支援zip和rar包,而包內的每台主機不能使用壓縮包,而應該使用檔案夾,這裡先將工程傳過來的zip包內的所有壓縮包先做一次解壓再打包處理。

[root@localhost 361way]# unzip jieguo.zip
[root@localhost 361way]# cd jieguo
[root@localhost jieguo]# for i in `ls`;do tar xvf $i; rm -rf $i;done
[root@localhost jieguo]# cd ../
[root@localhost 361way]# zip -r jieguo.zip jieguo/
[root@localhost 361way]# pwd
/tmp/361way
將這個新的包直接匯入合規平台掃描。

二、掃描結果處理

掃描後出來的一個總的結果是一個excel檔案,內容大致如下:

表格檢查項不僅僅這幾項,後面還有很多項,而且結果根據主機的批次不同,也會在redhat、suse、aix等不同的sheet頁內。一般同一批上線主機一般系統都會一致。這裡以sheet頁為suse,excel 檔案名稱為kkk.xls為例。python指令碼如下:

#!/usr/bin/python
#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import json
import pyexcel as pe
from pyexcel.ext import xls
r = pe.SeriesReader(file="kkk.xls",sheetname="suse")
data = pe.utils.to_records(r)
#print r
#print data
#print json.dumps(data, encoding="UTF-8", ensure_ascii=False)
for d in data:
    #print row
    host = d.values()[0]
    for x in [x for x in d.keys() if d[x] != '不合格']:
        d.pop(x)
    if len(d) > 0:
       #print d
       print host,json.dumps(d, encoding="UTF-8", ensure_ascii=False)
註:pyexcel 和pyexcel-xls 模組安裝時需要先安裝好以下依賴包xlrd、future、xlwt-future、pyexcel-io、ordereddict 。如果主機可以直接連接外網,也可以通過easy_install pyexcel  pyexcel-xls 或pip pyexcel pyexcel-xls進行安裝。

以上指令碼執行後的結果如下:

如需更美觀也可以再進行進一步處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.