행궁동 데이터 엔지니어

반응형

인자를 넘겨받아 Python 스크립트 파일(.py 파일)을 실행하는 2가지 방법을 소개 합니다.

(커맨드라인에서 인자 입력 받아 python 스크립트 실행, 명령어로 인자 입력 받아 python 스크립트 실행)

 

Python이 아닌 다른 언어 정보를 찾으시는 분들은 {해당언어명} + "명령행 인자" 로 검색하시면 알맞은 정보 찾으실 수 있을 겁니다.

 

1. Python 내장 모듈 sys의 sys.argv 사용

2. Argparse 모듈 사용

 

1. Python 내장 모듈 sys의 sys.argv 이용해서 인자 넘겨받기

  • sys.argv is a list in Python, which contains the command-line arguments passed to the script. sys.argv는 실행한 스크립트 파일 이름과 arguments 정보를 담고 있는 리스트입니다.
  • argv : Arguments Values의 약자
  • 출처 : https://www.pythonforbeginners.com/system/python-sys-argv

sys.argv 사용 예제 스크립트 (파일명 : sys_argv.py)

입력받은 숫자만큼 현재 시간을 출력함

import sys
from datetime import datetime

cur_ts = datetime.now()
cur_ts = cur_ts.strftime('%Y-%m-%d %H:%M:%S')

# 리스트 sys.argv가 담고 있는 데이터 출력해보기
for arg in sys.argv:
    print(arg, end=" ")

print("")

iter_num = int(sys.argv[1])

# 실제 날자 출력 부분
for _ in range(iter_num):
    print(cur_ts)

스크립트 실행하기

# 명령어에 인자(3)을 넘겨서 실행
python sys_argv.py 3

결과 (리스트인 sys.argv 가 담고있는 정보도 모두 출력해봤습니다)

기타 : python sys_argv.py 3 4 5로 인자를 3개 주면, sys.argv.py 3 4 5 가 출력됨

 

2. Argparse 모듈로 인자 넘겨받기 (설명도 추가 가능)

  • argparse - Command-line parsing libraryargparse는 명령어를 파싱 하는 라이브러리
  • 위 내용은 help(argparse)로 확인 가능 *help() : 모듈, 클래스, 함수의 설명(docstring)을 출력해줌
  • argparse는 명령행으로 입력받을 수 있는 인자(Arguments)에 대해 상세한 설명을 적을 수 있음

 

 

 

argparse 사용 예제 스크립트 (파일명 : arg_parse.py)

입력받은 숫자만큼 현재 시간을 출력함

import argparse
import os
from datetime import datetime

parser = argparse.ArgumentParser(description='설명입니다.')
parser.add_argument('--number', '-n', required=True, help='날짜를 반복출력할 횟수를 입력해주세요 예) 3')
args = parser.parse_args()

cur_ts = datetime.now()
cur_ts = cur_ts.strftime('%Y-%m-%d %H:%M:%S')

# parser.add_argument에서 --number로 argument를 추가해줬기 때문에 args.number로 사용
iter_num = int(args.number)

for _ in range(iter_num):
    print(cur_ts)

스크립트 실행하기

# 입력받을 수 있는 인자 확인 --help (-h와 동일)
python arg_parse.py -h
# 스크립트 실행
python arg_parse.py -n 3

결과

실행결과 -h와 --help, -n과 --numer는 동일하게 인식합니다.

 

 

아래는 argv 예제 스크립트입니다.

 

필요하신분은 다운 받아 사용하시고, 궁금하신 사항은 편하게 댓글 남겨주세요.

 

감사합니다.

 

python_argv예제.zip
0.00MB

# 참고자료
1. https://docs.python.org/ko/3/library/argparse.html
2. https://pythonprogramming.net/argparse-cli-intermediate-python-tutorial/
3. https://www.pythonforbeginners.com/system/python-sys-argv

 

반응형

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band