zoukankan      html  css  js  c++  java
  • python--将jenkins配置的任务导出到Excel

    jenkins任务全部导出到Excel,完整代码

    from jenkins import Jenkins
    import xlwt,re
    
    jen = Jenkins(url="jenkins路由地址", username="用户名", password="密码")
    all_jobs = jen.get_all_jobs()
    
    def export_excel():
        wb = xlwt.Workbook(encoding='utf-8')
        ws = wb.add_sheet('test')
        style = xlwt.XFStyle()
        # 设置字体
        font = xlwt.Font()
        style.font = font
        # 单元格对齐
        alignment = xlwt.Alignment()
        # 水平对齐方式和垂直对齐方式
        alignment.horz = xlwt.Alignment.HORZ_CENTER
        alignment.vert = xlwt.Alignment.VERT_CENTER
        # 自动换行
        alignment.wrap = 1
        style.alignment = alignment
        ws.write(0, 0, '_class')
        ws.write(0, 1, 'name')
        ws.write(0, 2, 'url')
        ws.write(0, 3, 'color')
        ws.write(0, 4, 'fullname')
        ws.write(0, 5, 'gitUrl')
        ws.write(0, 6, 'shell')
        try:
            for i in range(len(all_jobs)):
                ws.write(i+1,0,all_jobs[i].get('_class'))
                ws.write(i+1,1,all_jobs[i].get('name'))
                ws.write(i+1,2,all_jobs[i].get('url'))
                ws.write(i+1,3,all_jobs[i].get('color'))
                ws.write(i+1,4,all_jobs[i].get('fullname'))
                print(all_jobs[i].get('name'))
                name_list = ['compile',               # name_list是我拉取到所有应用里请求git地址和shell脚本时报错的应用名'knowledge',
                             'database',
                             'docker-images','python-runtime-build']
                if all_jobs[i].get('name') in name_list:
                    pass
                else:
                    conf = jen.get_job_config(name=all_jobs[i].get('name'))
                    url = re.finditer(r"<url>.*?</url>", conf)
                    for match in url:
                        gitUrl = match.group()
                        ws.write(i+1, 5, gitUrl.lstrip('<url>').rstrip('</url>'))
                    comm = re.finditer(r"<command>[sS]*?</command>", conf)
                    for match in comm:
                        shellComm = match.group()
                        shellStr = shellComm.lstrip('<command>').rstrip('</command>')   # 去除标签
                        shellstr = re.sub(r'&quot;', '"', shellStr)        # 双引号乱码替换
                        shellstr = re.sub(r'&apos;',"'",shellstr)          # 单引号乱码替换
                shellstr = re.sub(r'&amp;',"&",shellstr)       # &乱码替换
    ws.write(i + 1, 6, shellstr) except Exception as e: print(e) # 保存excel文件 wb.save('./test.xls') if __name__ == '__main__': export_excel()
  • 相关阅读:
    CF1539 VP 记录
    CF1529 VP 记录
    CF875C National Property 题解
    CF1545 比赛记录
    CF 1550 比赛记录
    CF1539E Game with Cards 题解
    CF1202F You Are Given Some Letters... 题解
    vmware Linux虚拟机挂载共享文件夹
    利用SOLR搭建企业搜索平台 之九(solr的查询语法)
    利用SOLR搭建企业搜索平台 之四(MultiCore)
  • 原文地址:https://www.cnblogs.com/lutt/p/12207834.html
Copyright © 2011-2022 走看看