[Python] cmd에서 py 실행(입력 인자 필요 시)

Jae Gyeong Lee·2023년 9월 27일
post-thumbnail

cmd에서 py파일 실행 시, 해당 프로그램이 인자값을 필요로 할 떄 활용하는 모듈

  • (1) sys, (2) argparse

1. sys

  • 파이썬 인터프리터 제어를 위해 사용

sys.argv

  • 명령행 인자를 읽어올 떄 사용
import sys
sys.argv

인자값 받으려는 변수에 'sys.argv' 사용

  • argv[0]은 현재 실행된 파일명이 담김, argv[1]부터 입력 받는 인자

인자값을 받으려는게 1개 일 떄

>> sys.argv[1]

인자값을 받으려는게 2개 일 떄

>> sys.argv[1]
>> sys.argv[2]

인자값을 받으려는게 n개 일 떄

>> sys.argv[1]
>> sys.argv[2]
...
>> sys.argv[n]
  • 입력된 값의 기본 형태는 str, 숫자 필요 시 int() 또는 float()로 형변환 필요

py파일 코딩 예시

import sys

a = int(sys.argv[1])
b = int(sys.argv[2])

def test(a, b):
    c = a + b
    return c

if __name__ == "__main__":
    print(test(a, b))

cmd 실행 예시

> python test.py 3 4
7
  • 가장 앞에 'python'은 python 파일을 실행할 것이란 의미,
  • 'test.py'는 파일명
  • 3과 4가 사용자 입력 인자이며, 인자 간 구분은 '공백'

2. argparse

  • 명령행 인자를 읽고 parsing 해주는 라이브러리
  • argparse 라이브러리는 명령프롬프트에서 실행하는 것이 원칙

사용법(5step)

1) 모듈 import

import argparse

2) parser 객체 생성

parser = argparse.ArgumentParser(description='About Argparse')
  • usage, default value, prog 등도 지정 가능

3) 명령행으로 전달할 인자 추가(add_argument)

parser.add_argument('--print-number', type=int, 
                        help='an integer for printing repeatably')

4) parser 실행

args = parser.parse_args()

5) 사용

>> print(args.test)

py파일 코딩 예시

import argparse
...

https://greeksharifa.github.io/references/2019/02/12/argparse-usage/
https://docs.python.org/ko/3.7/library/argparse.html

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글