인턴 과정에서 서버 선배님이 저에게 서버의 로그 데이터 정리를 도와달라고 부탁하셨고, 마지막으로 Python을 사용해 데이터를 추출하고 엑셀 형식으로 내보냈습니다. 다음은 특정 파일 디렉터리의 모든 텍스트 파일을 자동으로 탐색하고 전체 데이터를 Excel 파일로 내보낼 수 있는 Python 구현의 소스 코드입니다. Excel 형식으로 내보내는 것이 통계에 더 편리합니다.
//디렉토리에 있는 모든 파일의 탐색 및 통계를 .txt 형식으로 달성합니다. 다른 형식인 경우 아래 .txt를 필요한 형식 접미사로 변경하면 더 편리합니다.
//모든 파일의 내용을 먼저 추출하여 새 파일에 쓴 다음 새 파일에서 데이터를 추출하고 마지막으로 데이터를 Excel 파일에 쓰는 과정입니다
from pyExcelerator import * import os currentpath = os.getcwd() testlog = open('test.mak','w') os.mkdir(r'Excel') print "currentpath: ",currentpath for file in os.listdir(currentpath): if os.path.isfile(os.path.join(currentpath,file))==True: if file.find('.txt')>0: //如果是别的格式直接将下面的.txt改为你所需要的格式后缀就可以了 file_ = open(file,'r') content = file_.read() file_.close() testlog.write( content ) print 1 os.popen('log_parse.exe test.mak >> shuju.log') print 2 for _file in os.listdir(currentpath): if os.path.isfile(os.path.join(currentpath,_file))==True: if _file.find('.log')>0: work = Workbook() works = work.add_sheet('Sheet1') print 3 file_object = open(_file) for i in range(0,2): works.col(i).width = 10000 i = 0 for line in file_object: line = line.rstrip('\n') print 4 if not line.split(): i = i + 1 if line.strip(): array = line.split(':') lineleft = array[0] lineright = array[1] works.write(i,0,lineleft) works.write(i,1,lineright) i = i + 1 _file = _file.rstrip('.log') _file = 'Excel\%s.xls' % _file work.save(_file)
//인쇄된 1 2 3 4는 제가 작성한 로그입니다. 원치 않으시면 직접 삭제하셔도 됩니다. 이 Python 구현을 사용하는 경우 위 코드를 test.py 파일에 직접 저장하면 됩니다.
그리고 중간에 C++ 추출 실행 파일인 log_parse.exe를 사용하는데, 아래에 배치되어 있습니다. 사용시에는 test.py와 같은 디렉토리에 넣어주시면 됩니다.
편의성을 원하시면 .bat 파일을 생성하여 명령줄 형식으로 작성하시면 다음과 같이 단 한 번의 클릭으로 모든 작업을 자동으로 완료하실 수 있습니다.
데이터를 Excel 형식으로 내보내는 간단한 방법을 구현하는 더 많은 Python 스크립트를 보려면 PHP 중국어 웹사이트에서 관련 기사를 주목하세요!