언어/python

PYTHON + 엑셀

파아랑새 2018. 3. 25. 00:16
# -*- coding: utf-8 -*-
from winappdbg import System, Process, win32
import psutil._pswindows
import openpyxl
from openpyxl.styles import Alignment, Font
from openpyxl.styles import Border, Side
def boxRet():
box = Border(left=Side(border_style="thin", color='FF000000'),
right=Side(border_style="thin", color='FF000000'),
top=Side(border_style="thin", color='FF000000'),
bottom=Side(border_style="thin", color='FF000000'),
diagonal=Side(border_style="thin", color='FF000000'),
diagonal_direction=0,
outline=Side(border_style="thin", color='FF000000'),
vertical=Side(border_style="thin", color='FF000000'),
horizontal=Side(border_style="thin", color='FF000000'))
return box

def main():
#system = System() # 객체 생성
#===============================================================================
workBook = openpyxl.Workbook() # 객체 생성
workSheet = workBook.active
workSheet['A1'] = "Pid"
workSheet.merge_cells("A1:B1")
workSheet['A1'].alignment = Alignment(horizontal='center', vertical='center')
workSheet['A1'].border = boxRet()
workSheet['B1'].border = boxRet()

workSheet['C1'] = "Name"
workSheet.merge_cells("C1:D1")
workSheet['C1'].alignment = Alignment(horizontal='center', vertical='center')
workSheet['C1'].border = boxRet()
workSheet['D1'].border = boxRet()

workSheet['E1'] = "Status"
workSheet.merge_cells("E1:F1")
workSheet['E1'].alignment = Alignment(horizontal='center', vertical='center')
workSheet['E1'].border = boxRet()
workSheet['F1'].border = boxRet()

workSheet['G1'] = "Memory"
workSheet.merge_cells("G1:H1")
workSheet['G1'].alignment = Alignment(horizontal='center', vertical='center')
workSheet['G1'].border = boxRet()
workSheet['H1'].border = boxRet()
#===============================================================================
p = psutil.process_iter()
ExcelIndxList = ['A', 'C', 'E', 'G']
tmpIndx = 0
numIndx = 2
for process_ in p:
try:
print format(process_.memory_full_info().rss//1024, ","),"K"
print "pid : ", format(process_.pid)
print "name : ", format(process_.name())
print "status: ",format(process_.status())
print "==========================================="
except:
pass
else:
t_pid = ExcelIndxList[tmpIndx] + str(numIndx)
workSheet[t_pid] = process_.pid
indx = t_pid + ':' + chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)
workSheet.merge_cells(indx)
workSheet[t_pid].alignment = Alignment(horizontal='center', vertical='center')
workSheet[t_pid].border = boxRet()
workSheet[chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)].border = boxRet()
tmpIndx += 1
# >>>
t_pid = ExcelIndxList[tmpIndx] + str(numIndx)
workSheet[t_pid] = process_.name()
indx = t_pid + ':' + chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)
workSheet.merge_cells(indx)
workSheet[t_pid].alignment = Alignment(horizontal='center', vertical='center')
workSheet[t_pid].border = boxRet()
workSheet[chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)].border = boxRet()
tmpIndx += 1
# >>>
t_pid = ExcelIndxList[tmpIndx] + str(numIndx)
workSheet[t_pid] = process_.status()
indx = t_pid + ':' + chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)
workSheet.merge_cells(indx)
workSheet[t_pid].alignment = Alignment(horizontal='center', vertical='center')
workSheet[t_pid].border = boxRet()
workSheet[chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)].border = boxRet()
tmpIndx += 1
# >>>
t_pid = ExcelIndxList[tmpIndx] + str(numIndx)
workSheet[t_pid] = process_.memory_full_info().rss//1024
indx = t_pid + ':' + chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)
workSheet.merge_cells(indx)
workSheet[t_pid].alignment = Alignment(horizontal='center', vertical='center')
workSheet[t_pid].border = boxRet()
workSheet[chr(ord(ExcelIndxList[tmpIndx])+1) + str(numIndx)].border = boxRet()
numIndx += 1
tmpIndx = 0

workBook.save(filename="C:\Users\sleep\Desktop\stu.xlsx")
# fileName, filePid, fileMemory = \
# str(process_[0].get_filename()), process_[0].get_pid(), process_[1]
# if "\\" in fileName:
# fileName = fileName.split('\\')[-1]
# print fileName, filePid, fileMemory


if __name__ == "__main__":
main()