Wednesday, January 17, 2007
Python/파이썬] sys.argv 명령행 옵션 구하기(인수;아규먼트;매개변수;Command Line Argument)
명령행 프로그램(텍스트 모드 프로그램)의 대부분은 "실행시 옵션"을 받아들입니다.(물론 GUI 프로그램도 명령행 옵션을 사용할 수 있음) 즉, 프로그램을 실행할 때, 프로그램명 뒤에 옵션을 지정해 줄 수 있습니다.
펄(Perl)의 "@ARGV" 나
자바의 "String[] args"나,
C언어의 "int argc, char* argv[]" 에 해당하는 것이,
파이썬에서는 sys.argv 입니다.
sys.argv[0] 에는 항상 파이썬 스크립트 자기 자신의 파일명이 풀패스로 들어갑니다.
sys.argv[1] 에는 첫번째 옵션이 들어갑니다.
sys.argv[2] 에는 두번째 옵션이 들어갑니다.
...
옵션 개수 구하기
argc 에 해당하는 것은 없고, sys.argv 의 요소 개수를 구하면 됩니다.
옵션을 주지 않고 실행했을 때 len(sys.argv) 는 1입니다. 즉, 옵션 개수는 항상 최소한 1은 됩니다.
따라서 len(sys.argv)에서 1을 마이너스 해주어야 실제 옵션 개수가 구해집니다.
실행시 옵션 (Argument; sys.argv) 다루기 예제
파일명: 0.py
실행 결과 화면:
(1번째는 아무 옵션 없이 실행, 2번째는 한 개의 옵션만, 3번째는 AAA BBB CCC 자장면 ZZZ 라는 5개의 옵션을 붙여 실행)
좀더 실용적인 예제입니다. 명령행 옵션으로 숫자를 입력받아 처리합니다: ▶▶ Python/파이썬] 실행시 옵션으로, 숫자 입력 받기 예제, Input Number argv (Argument, Option)
펄(Perl)의 "@ARGV" 나
자바의 "String[] args"나,
C언어의 "int argc, char* argv[]" 에 해당하는 것이,
파이썬에서는 sys.argv 입니다.
sys.argv[0] 에는 항상 파이썬 스크립트 자기 자신의 파일명이 풀패스로 들어갑니다.
sys.argv[1] 에는 첫번째 옵션이 들어갑니다.
sys.argv[2] 에는 두번째 옵션이 들어갑니다.
...
옵션 개수 구하기
argc 에 해당하는 것은 없고, sys.argv 의 요소 개수를 구하면 됩니다.
옵션을 주지 않고 실행했을 때 len(sys.argv) 는 1입니다. 즉, 옵션 개수는 항상 최소한 1은 됩니다.
따라서 len(sys.argv)에서 1을 마이너스 해주어야 실제 옵션 개수가 구해집니다.
실행시 옵션 (Argument; sys.argv) 다루기 예제
파일명: 0.py
#!/usr/bin/python
# -*- coding: cp949 -*-
import sys
if len(sys.argv) is 1:
print "옵션을 주지 않고 이 스크립트를 실행하셨군요"
print "옵션 개수: %d" % (len(sys.argv) - 1)
print "\n< 옵션 목록 >"
for i in range(len(sys.argv)):
print "sys.argv[%d] = '%s'" % (i, sys.argv[i])
# -*- coding: cp949 -*-
import sys
if len(sys.argv) is 1:
print "옵션을 주지 않고 이 스크립트를 실행하셨군요"
print "옵션 개수: %d" % (len(sys.argv) - 1)
print "\n< 옵션 목록 >"
for i in range(len(sys.argv)):
print "sys.argv[%d] = '%s'" % (i, sys.argv[i])
실행 결과 화면:
(1번째는 아무 옵션 없이 실행, 2번째는 한 개의 옵션만, 3번째는 AAA BBB CCC 자장면 ZZZ 라는 5개의 옵션을 붙여 실행)
D:\Z>0.py
옵션을 주지 않고 이 스크립트를 실행하셨군요
옵션 개수: 0
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
D:\Z>
D:\Z>
D:\Z>
D:\Z>0.py AAA
옵션 개수: 1
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
sys.argv[1] = 'AAA'
D:\Z>
D:\Z>
D:\Z>
D:\Z>0.py AAA BBB CCC 자장면 ZZZ
옵션 개수: 5
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
sys.argv[1] = 'AAA'
sys.argv[2] = 'BBB'
sys.argv[3] = 'CCC'
sys.argv[4] = '자장면'
sys.argv[5] = 'ZZZ'
D:\Z>
옵션을 주지 않고 이 스크립트를 실행하셨군요
옵션 개수: 0
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
D:\Z>
D:\Z>
D:\Z>
D:\Z>0.py AAA
옵션 개수: 1
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
sys.argv[1] = 'AAA'
D:\Z>
D:\Z>
D:\Z>
D:\Z>0.py AAA BBB CCC 자장면 ZZZ
옵션 개수: 5
< 옵션 목록 >
sys.argv[0] = 'D:\Z\0.py'
sys.argv[1] = 'AAA'
sys.argv[2] = 'BBB'
sys.argv[3] = 'CCC'
sys.argv[4] = '자장면'
sys.argv[5] = 'ZZZ'
D:\Z>
좀더 실용적인 예제입니다. 명령행 옵션으로 숫자를 입력받아 처리합니다: ▶▶ Python/파이썬] 실행시 옵션으로, 숫자 입력 받기 예제, Input Number argv (Argument, Option)
tag: python
Python | 파이썬 프로그래밍
<< Home