LogIn E-mail
설계이야기
getopt arg argv
# 26 JMJS    23.7.26 23:12

import sys, getopt

def myapp(argv):

    FILE_NAME     = argv[0] # command line arguments의 첫번째는 파일명
    INSTANCE_NAME = ""      # 인스턴스명 초기화
    CHANNEL_NAME  = ""      # 채널명 초기화

    try:
        # opts: getopt 옵션에 따라 파싱 ex) [('-i', 'myinstancce1')]
        # etc_args: getopt 옵션 이외에 입력된 일반 Argument
        # argv 첫번째(index:0)는 파일명, 두번째(index:1)부터 Arguments
        opts, etc_args = getopt.getopt(argv[1:], \
                                 "hi:c:", ["help","instance=","channel="])

    except getopt.GetoptError: # 옵션지정이 올바르지 않은 경우
        print(FILE_NAME, '-i <instance name> -c <channel name>')
        sys.exit(2)

    for opt, arg in opts: # 옵션이 파싱된 경우
        if opt in ("-h", "--help"): # HELP 요청인 경우 사용법 출력
            print(FILE_NAME, '-i <instance name> -c <channel name>')
            sys.exit()

        elif opt in ("-i", "--instance"): # 인스턴명 입력인 경우
            INSTANCE_NAME = arg

        elif opt in ("-c", "--channel"): # 채널명 입력인 경우
            CHANNEL_NAME = arg

    if len(INSTANCE_NAME) < 1: # 필수항목 값이 비어있다면
        print(FILE_NAME, "-i option is mandatory") # 필수임을 출력
        sys.exit(2)

    print("INSTANCE_NAME:", INSTANCE_NAME)
    print("CHANNEL_NAME:",  CHANNEL_NAME)

# module이 아닌 main으로 실행된 경우 실행된다
if __name__ == "__main__":
    myapp(sys.argv)

게시물: 32 건, 현재: 1 / 1 쪽
번호 제       목 작성자 등록일 방문
33  [bpy]bone2_wr.py JMJS 23.9.23 5
32  [bpy]bm.verts depsgraph JMJS 23.9.23 5
31  [bpy]keyframe_insert JMJS 23.9.23 5
30  [bpy]key_blocks JMJS 23.9.23 6
29  def abc (a=10,b=20,c=30) JMJS 23.8.1 19
28  shape prj JMJS 23.7.28 18
27  yaml JMJS 23.7.28 22
26  getopt arg argv JMJS 23.7.26 25
25  pg.mouse.get_pressed() pg.mouse.get_pos() JMJS 22.11.20 110
24  pg.MOUSEBUTTONDOWN event.button JMJS 22.11.20 97
23  모두의 파이썬 - 20일만에배우는 프로그래밍 기초 JMJS 20.1.8 144
22  python -m pip install -U pip JMJS 19.11.25 162
21  get =lambda i,m ... JMJS 19.11.13 164
20  2차원 리스트, 튜플 JMJS 19.11.13 153
19  [turtle]def polygon3(n,c,d) JMJS 19.11.11 170
18  [turtle]def polygon2(n,a) JMJS 19.11.11 160
17  def factorial(n) JMJS 19.11.11 157
16  def sum_func(n) JMJS 19.11.11 163
15  def hello() fun1(a) fun2(a,b) JMJS 19.11.11 159
14  while sum JMJS 19.11.11 159
13  random calculation JMJS 19.11.11 151
12  turtle random JMJS 19.11.11 150
11  import time time.time JMJS 19.11.11 151
10  turtle begin_fill end_fill JMJS 19.11.11 154
9  if else JMJS 19.11.11 151
8  input JMJS 19.11.11 155
7  list JMJS 19.11.11 159
6  turtle triangle JMJS 19.11.11 155
5  for range JMJS 19.11.11 149
4  모듈 사용하기 JMJS 19.11.11 154
3  import 파이썬 모듈 가져다 쓰기 JMJS 19.11.11 164
1  print 줄바꿈 JMJS 19.11.11 189
[1]