#!/usr/bin/python3 #-*- coding: utf-8 -*- import os, sys, time, errno, socket, signal, psutil, random, logging.handlers, subprocess, paramiko, hvac from xlwt import Workbook, XFStyle, Borders, Font, Pattern from socket import error as SocketError process_time = time.strftime("%Y%m%d_%H%M", time.localtime()) excel_file_name = '/mnt/e/excel/{}.xls'.format(process_time) def process_close(flag=True, result=''): if flag: print("[Success]") else: print("[Fail]:{}".format(result)) sys.exit(0) def set_header(sheet, header_list): # 폰트 설정 font = Font() font.bold = True # 테두리 설정 borders = Borders() borders.left = Borders.THIN borders.right = Borders.THIN borders.top = Borders.THIN borders.bottom = Borders.THIN # 배경색 설정 pattern = Pattern() pattern.pattern = Pattern.SOLID_PATTERN pattern.pattern_fore_colour = 22 # #E2EFDA는 xlwt에서 인덱스 22에 해당하는 색입니다. hdrstyle = XFStyle() hdrstyle.font = font hdrstyle.borders = borders hdrstyle.pattern = pattern for idx, header in enumerate(header_list): sheet.write(0, idx, header, hdrstyle) sheet.col(idx).width = len(header) * 800 def write_data(sheet, data_list): datestyle = XFStyle() datestyle.num_format_str = 'YYYY-MM-DD' for row_num, data in enumerate(data_list, start=1): for col_num, cell_data in enumerate(data): if col_num == 7: sheet.write(row_num, col_num, cell_data, datestyle) elif col_num in [1, 4, 5]: formatted_data = u'{}'.format(cell_data) if cell_data else '' sheet.write(row_num, col_num, formatted_data) else: sheet.write(row_num, col_num, cell_data) def excel_write(header_list=[], data_list=[], filename='', sheetTitle=''): workbook = Workbook(style_compression=2, encoding='utf-8') sheet = workbook.add_sheet(sheetTitle) set_header(sheet, header_list) write_data(sheet, data_list) sheet.panes_frozen = True sheet.vert_split_pos = 0 sheet.horz_split_pos = 1 workbook.save(filename) def main(): header_list=['번호','호스트 유형','호스트명','호스트 IP','포트번호','프로토콜','인증방법','1차 로그인 계정명','1차 로그인 비밀번호','1차 로그인 계정명','2차 로그인 비밀번호','용도','비고'] data_list=[] openfile=open('/tmp/host_list','r') readfile=openfile.readlines() openfile.close() for idx, host_data in enumerate(readfile): try: if idx==0: continue host_num=idx hosttype=host_data.strip().split(' ')[0] print(hosttype) hostname=host_data.strip().split(' ')[1] host_ips=host_data.strip().split(' ')[2] port_num=int(host_data.strip().split(' ')[3]) protocol='SSH' auth_con='Password' username=host_data.strip().split(' ')[4] first_pw=host_data.strip().split(' ')[5] rootuser=host_data.strip().split(' ')[6] secon_pw=host_data.strip().split(' ')[7] descript='-' remarks_='-' data_list.append([host_num,hosttype,hostname,host_ips,port_num,protocol,auth_con,username,first_pw,rootuser,secon_pw,descript,remarks_,]) except: continue excel_write(header_list, data_list, excel_file_name, 'TEST') DEBUG=False try: if os.sys.argv[1]: DEBUG=True except: pass main() process_close()