본문 바로가기
컴퓨터관련/Python

python에서 인자값 입력받기

by 빛과 어둠사이 2020. 10. 22.
728x90
반응형
SMALL

오늘은 파이썬에서 인자값을 받아서

처리하는 방법을 정리해보려고 합니다.

 

 

우선, 인자값이란 무엇인가?

프로그램을 실행할 때,

같이 넘겨주는 값들입니다.

이 값들을 받아서 처리를 할 수도 있습니다.

오늘은 이 인자값을 받아서

처리하는 방법을

정리해보고자 합니다.

 

보통 인자값을 받아서 처리할 때는

프로그램에서 인자값을 넣어서 실행하는 방법과

커맨드창(터미널창)에서 인자값을 넣어서 실행하는 방법으로

나눌 수 있을 것 같습니다.

 

인자값이 무엇인지는

아래쪽 실제 예제들을 보면서

좀 더 자세히 알아보로고 하겠습니다.

 

 

 

그리고 파이썬에서 인자값을 사용하기 위해서는

sys라는 시스템모듈을 사용하여야 합니다.

sys라는 시스템모듈을 import 해주어야 합니다.

 

 

 

 

이제 인자값을 받아서

처리하는 실제 예제들을

확인해보도록 하겠습니다.

 

 

저는 우선 제일 기본적으로

아래와 같이 코딩을 해보았습니다.

import sys
print("인자값의 총 수는 %d 입니다" % (len(sys.argv)))

위와 같이 코딩을 하였습니다.

위의 소스는 인자값을 받아서

인자값의 총 갯수를 화면에 출력해주는 것입니다.

 

위와 같이 코딩을 하고

실행을 하면

결과는 다음과 같이 나와집니다.

 

위처럼 나와지는 것을

확인할 수 있습니다.

인자값이 한개인 이유는

해당 py파일이 한개의 인자값으로 인식이 되기 때문입니다

 

좀 더 구체적으로 보기 위하여

커맨드창에서 실행을 해보도록 하겠습니다.

 

우선 커맨드창을 열어보도록 하겠습니다.

시작에서 cmd 혹은 명령프롬포트를 입력하여

실행하여 줍니다.

그리고 위에 코딩했던 파일이 있던 경로로

이동을 하였습니다.

 

그리고 위에 코딩했던 파일을

실행해보았습니다.

실행하는 방법은 다음과 같습니다.

 

python test03.py

 

위와 같이 입력을 하면 됩니다.

그러면 파이썬 프로그램을 실행해라.

python 파일명은 test03.py 이다.

이런 뜻입니다.

위처럼 터미널 창에서 입력하여 실행을 하면

결과는 다음과 같이 나와지는 것을

확인할 수 있습니다.

 

위처럼 결과가 나와지는 것을 확인할 수 있습니다.

즉, test03.py가 첫번째 인자값이라는 것을

확인할 수 있습니다.

 

그러면 이번에는 인자값을 추가적으로

더 받아보도록 하겠습니다.

터미널 창에 아래와 같이 입력을 하였습니다.

python test03.py 123

 

위처럼 입력을 하고

실행을 해보았습니다.

그러면 결과는 아래처럼 나오게 되었습니다.

위처럼 나와지는 것을

확인할 수 있습니다.

test03.py가 첫번째 인자값

123이 두번째 인자값으로 된 것을

확인할 수 있습니다.

 

 

 

 

파이썬에서 인자값을 구분할 때는

스페이스를 기준으로 구분을 하게 되어 있습니다.

하나의 인자값이 있고, 띄어쓰기(스페이스)가 있고

다른 값이 있으면 인자값이 있는 것으로

인식을 하게 되는 것입니다.

스페이스의 갯수와 상관없이

스페이스가 있고, 그 이후에 데이터가 있어야지만

인자값이 있는 것으로

구분이 되는 것입니다.

 

 

실제 사용 예제를 확인해보도록 하겠습니다.

실제로 띄어쓰기를 많이 넣고

실행을 해보았습니다.

 

python test03.py       123

위처럼 띄어쓰기를 많이 넣고

실행을 해보았습니다.

그러면 결과는 아래처럼 나와지는 것을

확인할 수 있습니다.

 

 

 

스페이스를 한번만 넣거나

여러번 넣거나 동일하게 결과가 나와지는 것을

확인할 수 있습니다.

 

 

 

 

 

이제 인자값을 확인하는 방법을

정리해보도록 하겠습니다.

인자값이 있을 때,

인자값들을 출력하도록 하는 것입니다.

저는 아래와 같이 코딩을 하였습니다.

import sys
print("인자값의 총 수는 %d 입니다" % (len(sys.argv)))

if len(sys.argv) < 2 :
    print("인자값이 없습니다.")
else :
    print(f"두번째 인자값은 {sys.argv[1]} 입니다.")

위의 소스를 보면

우선 인자값의 갯수를 출력하도록 하였습니다.

그리고 실행되는 프로그램명을 제외하고

다른 인자값이 있으면

두번째 인자값을 출력하도록 하였습니다.

 

위처럼 소스를 작성하였고,

실행을 하면 결과는 다음과 같이 나와집니다.

 

 

툴에서 실행을 하였더니

별다른 인자값은 설정을 못하였습니다.

그랬더니 위처럼 나와지는 것을

확인할 수 있습니다.

 

 

그러면 이번에는 터미널에서 

인자값을 넣어서

실행해보도록 하겠습니다.

python test03.py 123

위처럼 입력을 하여

실행을 해보도록 하겠습니다.

그러면 결과는 아래처럼 나와지는 것을

확인할 수 있습니다.

 

위처럼 나와지는 것을

확인할 수 있습니다.

두번째 인자값이 123이라는 것을

확인할 수 있습니다.

 

 

그래서 이번에는 인자값을 하나 더

추가해보도록 하겠습니다.

python test03.py 123 456

 

위처럼 입력을 하고

실행을 해보도록 하겠습니다.

그러면 결과는

아래처럼 나와지는 것을

확인할 수 있습니다.

 

두번째 인자값만 출력하게 하였기 때문에

결과는 동일한 것을

확인할 수 있습니다.

 

 

 

 

그러면 나머지 인자값들을

확인하는 방법도

정리를 해보도록 하겠습니다.

물론, print문에서 숫자를 증가해서 하면 됩니다.

하지만, 인자값이 몇개일지 모르기 때문에

하드코딩을 넣을 수는 없습니다.

 

그래서 저는 for문을 이용하여

가변적으로 값을 출력하도록

해보았습니다.

 

저는 아래처럼 소스 코드를 작성하였습니다.

import sys
print("인자값의 총 수는 %d 입니다" % (len(sys.argv)))

if len(sys.argv) < 2 :
    print("인자값이 없습니다.")
else :
    a = range(1, len(sys.argv))
    for i in a :
        print(f"{i}번째 인자값은 {sys.argv[i]} 입니다.")

 

위 소스는  인자값의 갯수를 저장하는 a라는 변수를 만듭니다.

그리고 그 갯수만큼 for문을 돌리는 것입니다.

for문 안에서 인자값을 가지고 와서

화면에 출력하도록 해 놓은 것입니다.

 

 

 

 

위처럼 코딩을 하였습니다.

그리고 툴에서 실행을 하면

결과는 다음과 같이 나오게 됩니다.

 

 

툴에서는 인자값이 하나밖에 안되기 때문에

동일하게 나와집니다.

 

 

그러면 이번에는 터미널창에서

실행을 해보도록 하겠습니다.

python test03.py 123

 

위처럼 입력을 하고

실행을 해보았습니다.

그러면 결과는 아래처럼 나와지는 것을

확인할 수 있습니다.

 

 

 

위처럼 인자값에 대해서

정상적으로 나와지는 것을

확인할 수 있습니다.

 

 

 

그러면 이제 인자값을 많이 넣어보도록 하겠습니다.

python test03.py 123 456 111 222 333 aaa bbb ccc

위처럼 여러개의 인자값을 넣고

실행을 해보도록 하겠습니다.

그러면 결과는 아래처럼 나와지는 것을

확인할 수 있습니다.

 

 

 

 

 

위처럼 인자값의 내용들이

정상적으로 나와지는 것을

확인할 수 있습니다.

 

 

인자값이 정확하게 몇개인지 알 때는

이렇게 할 필요가 없지만,

가변적일 경우에는

위처럼 해주면 좋을 것 같습니다.

 

 

 

 

 

 

 

오늘은 파이썬에서의 인자값을 받고,

가져오는 방법을 정리해보았습니다.

 

인자값을 받아서 처리하는 것은

은근히 많이 사용하는 것입니다.

그러니 알고 있으면

많은 도움이 될 것 같습니다.

 

 

 

이상으로 python에서의

인자값을 받는 방법이였습니다~

 

 

 

 

 

 

혼자 공부하는 파이썬:파이썬 최신 버전 반영

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

 

 

 

 

 

 

 

728x90
반응형
LIST