[퍼옴] [점프투파이썬] python을 shell 같이 사용해보자.
[sys 모듈로 입력 인수 주기]
도스(DOS)를 사용해 본 독자라면 다음과 같은 명령어를 사용해 봤을 것이다.
C:\> type a.txt
위의 type 명령어는 바로 뒤에 적힌 파일 이름을 인수로 받아 그 내용을 출력해 주는 도스 명령어이다. 대부분의 도스 명령어들은 다음과 같이 명령행(도스 창)에서 입력 인수를 직접 주어 프로그램을 실행시키는 방식을 따른다. 이러한 기능을 파이썬 프로그램에도 적용시킬 수가 있다.
도스 명령어 [인수1 인수2 ...]
파이썬에서는 sys라는 모듈을 이용하여 입력 인수를 직접 줄수 있다. sys 모듈을 이용하려면 아래 예의 import sys처럼 import라는 명령어를 사용해야 한다.
(※ 모듈을 이용하고 만드는 방법에 대해서는 뒤에서 자세히 다룰 것이다.)
#sys1.py
import sys
args = sys.argv[1:]
for i in args:
print(i)
위의 예는 입력받은 인수들을 for문을 이용해 차례대로 하나씩 출력하는 예이다. sys 모듈의 argv는 명령창에서 입력한 인수들을 의미한다. 즉, 아래와 같이 입력했다면 argv[0]는 파일 이름인 sys1.py가 되고 argv[1]부터는 뒤에 따라오는 인수들이 차례로 argv의 요소가 된다.
이 프로그램을 C:/Python 디렉터리에 저장한 후 입력 인수를 함께 주어 실행시키면 다음과 같은 결과값을 얻을 수 있다.
C:\Python>python sys1.py aaa bbb ccc
aaa
bbb
ccc
위의 예를 이용해서 간단한 스크립트를 하나 만들어 보자.
#sys2.py
import sys
args = sys.argv[1:]
for i in args:
print(i.upper(), end=' ')
문자열 관련 함수인 upper()를 이용하여 명령 행에 입력된 소문자를 대문자로 바꾸어 주는 간단한 프로그램이다. 도스창에서 다음과 같이 입력해 보자.
(※ sys2.py 파일이 C:\Python
디렉터리 안에있어야만 한다.)
C:\Python>python sys2.py life is too short, you need python
결과는 다음과 같다.
LIFE IS TOO SHORT, YOU NEED PYTHON