command용 python script 기본 구조

command용 python script 기본 구조

M 소주6잔 8 355 6 0
# -*- coding: utf-8 -*-
import sys
if __name__== "__main__":
    reload(sys)
    sys.setdefaultencoding('utf-8')
import os, traceback
logger = None
########################################################################## 이 위 고정



def run(args):
    log('do something...')


 



##########################################################################
# 파일 실행방식 & LOAD 방식 겸용
##########################################################################
def main(*args, **kwargs):
    global logger
    if 'logger' in kwargs:
        logger = kwargs['logger']
    log('=========== SCRIPT START ===========')
    run(args)
    log('=========== SCRIPT END ===========')

def log(*args):
    try:
        if logger is not None:
            logger.debug(*args)
        if len(args) > 1:
            print(args[0] % tuple([str(x) for x in args[1:]]))
        else:
            print(str(args[0]))
        sys.stdout.flush()
    except Exception as e:
        print('Exception:%s', e)
        print(traceback.format_exc())

if __name__== "__main__":
    main()





파일실행방식 & LOAD 방식 모두 만족할 수 있는 기본 구조입니다. command foreground 는 sys.stdout 을 캡쳐해서 보여주고, background 방식은 log 파일을 보여주는 방식이다 보니, 한쪽으로만 짜면 다른방식을 사용하기 어려웠습니다. 그래서 로그를 받아 두 방식 모두 출력하도록 했습니다. log('test') log('test : %s %s' % (aa,bb)) log('test : %s %s', aa, bb) 상기 방식처럼 log 함수를 이용하여 메시지를 출력하면 foreground, background 모두 실행결과를 출력합니다.








8 Comments
23 jassmusic 06.17 23:12  
command script 덕분에 활용도가 올라갈것 같습니다~ 감사합니다.
21 린루 06.18 00:11  
간단한 기능 구현에 딱이네요
21 오리알 06.18 16:31  
도움 감사합니다.

소주님 이 글처럼 소스부분 이쁘게 쓰는거 어떻게 하는 건가요?
M 소주6잔 06.22 15:32  
저는 이미지 붙이기가 편해서 구글 문서로 글을 작성합니다.
visual studio code에서 복사하면 바로 저렇게 붙더군요.
사이트에 옮길때 구글문서 드래그 해서 복사하면 따로 이미지 첨부안해도 되기에 편합니다.
20 미남용님 06.19 15:24  
저도 언젠간 스크립트 만들고 있을겁니다!! 고맙습니다!!
2 라은 06.23 00:46  
와우 간결하게 잘정리해주셨네요 감사합니다
15 ciki777 06.26 12:40  
기본 구조 잘 참고 하겠습니다. 감사합니다.
17 기뚜리 06.26 16:54  
감사합니다..
Category
State
  • 현재 접속자 33(18) 명
  • 오늘 방문자 996 명
  • 어제 방문자 1,437 명
  • 최대 방문자 2,192 명
  • 전체 방문자 181,887 명
  • 전체 게시물 38,289 개
  • 전체 댓글수 11,058 개
  • 전체 회원수 2,459 명
Facebook Twitter GooglePlus KakaoStory NaverBand