Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

터미널에서 여러 인수를 전달해 파이썬 함수 실행하는 방법

파이썬에서 터미널(명령줄)로부터 여러 개의 인수를 받아 함수를 실행하려면 sys 모듈의 argv 기능을 사용해야 합니다. sys.argv는 명령줄에서 입력된 인수들을 문자열 리스트 형태로 가져오며, 첫 번째 요소(sys.argv[0])는 항상 스크립트 파일 이름 자체를 담고 있습니다.

따라서 실제 사용자가 입력한 인수는 sys.argv[1]부터 시작됩니다. 아래 예제를 통해 확인해 보겠습니다.

예제 코드

#fubar.py
import sys

def print_funcargs(arg1, arg2, arg3):
    print arg1 + ' ' + arg2 + ' ' + arg3

if __name__ == "__main__":
    a = sys.argv[1]
    b = sys.argv[2]
    c = sys.argv[3]

print_funcargs(a, b, c)
print sys.argv

위 코드는 세 개의 인수를 받아 이를 하나의 문자열로 연결해 출력하는 함수를 정의하고 있습니다. 터미널에서 다음과 같이 실행합니다.

$ python fubar.py I adore books

실행 결과

I adore books
['fubar.py', 'I', 'adore', 'books']

동작 원리 설명

실행 결과를 살펴보면 두 줄이 출력되었습니다. 첫 번째 줄은 함수가 인수 세 개를 공백으로 연결해 출력한 결과이고, 두 번째 줄은 sys.argv 리스트 전체를 그대로 출력한 것입니다. 리스트에는 스크립트 이름인 'fubar.py'가 포함되어 있으며, 그 뒤에 터미널에서 입력한 'I', 'adore', 'books'가 순서대로 저장된 것을 볼 수 있습니다.

참고로 위 코드는 print 문을 사용하는 파이썬 2 기준입니다. 파이썬 3 환경이라면 print() 함수 형태로 작성해야 하며, 인수 개수가 부족할 경우 IndexError가 발생하므로 len(sys.argv)로 개수를 먼저 확인하는 것이 안전합니다.