본문 바로가기

programming/python

[ python 친해지기 #13 ] 파이썬 코드 실행 시 인수 전달 방법

[ python 친해지기 #13 ] 파이썬 코드 실행 시 인수 전달 방법

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 파이썬 코드를 실행할 때 인수를 전달하는 방법에 대해 알아보겠습니다.

 

프로그래밍을 하다보면 이런 방식으로 데이터를 전달한 경험이 있으실 겁니다.

 

파이썬으로는 어떻게 가능한지 저와 함께 살펴보시죠.

 

python-logo
파이썬 로고


import 사용하기

 

아직 우리는 import 라는 것에 대해서 자세히 알아보진 않았습니다.

 

추후에 모듈에 대한 설명을 하면서 자세히 알려드릴 테니 오늘은 이런 방식이 있구나 하면서 봐주시면 감사하겠습니다.

 

모듈을 사용한다는 것에 대해 간단히 설명드리자면 파이썬으로 미리 짜인 코드를

 

내가 작성중인 코드에서 활용한다라고 생각하시면 쉽게 이해가 될 것입니다.

 

모듈을 사용할 때 import 가 필요하므로 추후에 자세히 알아봅시다.


코드 실행 시 인수 전달

 

파이썬에서 인수를 전달하기 위해서는 sys 라는 모듈을 사용해야 합니다.

 

예제에서는 os와 sys 모듈을 사용할 것인데 주석으로 설명을 하도록 하겠습니다.

 

# test.py 의 내용
import sys    # 인자를 받기 위해 사용
import os     # 현재 작업 경로와 디렉터리 만들기 위해 사용

path = str(os.getcwd()) # 현재 작업 경로를 path에 저장
path = path.replace('\\','\\\\') # 윈도우 경로에 \가 들어가기에 이스케이프 문자 적용

for name in sys.argv[1:]: # argv[0]에는 파이썬 파일의 파일명이 들어가있음
    os.mkdir(path + '\\\\' + name) # 인자로 전달된 문자열을 이름으로하는 디렉터리 생성

 

위와 같은 코드를 작성한 다음 cmd, 파워쉘, 윈도우 터미널 등을 이용해 파이썬 파일인 test.py를 실행시켜 봅시다.

 

python test.py 1 2 3

 

만약 이렇게 인자를 주고 명령어를 실행했다면 파이썬 코드에서 받아들이는 인자는 다음과 같습니다.

 

sys.argv[0] sys.argv[1] sys.argv[2] sys.argv[3]
test.py 1 2 3

 

python 뒤에 따라붙는 문자에 대해 공백을 기준으로 0번부터 차례대로 대입됩니다.

 

즉, 0번에는 파이썬 파일의 파일명이 들어가게 되고 우리가 사용하기를 원하는 인자의 값이 아니므로

 

코드에서 활용할 때는 sys.agrv[1:] 를 사용해 1번째 내용부터 사용하도록 합니다.

 

인자로 전달한 1, 2, 3에 대해서 각각 디렉터리가 생성된 것을 볼 수 있습니다.

 

result
코드 실행 결과

 

앞으로 프로그래밍을 하면서 유용하게 사용할 수 있는 인자 전달 방식이므로 잘 기억해 두시길 바랍니다.


여기까지 파이썬 코드 실행 시 인수 전달 방법에 대해서 알아보았습니다.

 

파이썬이 아닌 다른 언어를 사용해 보신 분들에게는 익숙한 방법일지도 모르겠네요.

 

인자를 전달하는 방식에 이런 방식도 있다는 걸 알아두셨으면 좋겠다는 생각에 포스팅으로 다뤄보았습니다.

 

다음에도 유용한 정보를 가져오도록 하겠습니다.

 

감사합니다.

반응형