명령줄(Command Line)은 운영체제에 실행 가능한 명령을 입력하는 곳입니다. Python 스크립트는 명령줄에서 python 실행 파일 뒤에 스크립트 이름을 작성하여 실행할 수 있습니다.
C:\users\acer>python test.py
명령줄 인수란 무엇인가?
Python 스크립트를 실행하면서 데이터를 함께 전달해야 하는 경우가 있습니다. 이때 전달할 데이터 요소들은 스크립트 이름 뒤에 공백으로 구분된 값들의 형태로 작성됩니다. 이렇게 공백으로 구분된 값들의 목록을 명령줄 인수(command line arguments)라고 부릅니다.
예시
C:\users\acer>python test.py Hello TutorialsPoint
sys.argv 리스트 객체
공백으로 구분되어 전달된 항목들은 argv[]라는 특별한 리스트(List) 객체에 저장됩니다. 이 객체는 Python 배포판에 기본 포함되어 있는 sys 모듈에 정의되어 있습니다.
위 예제의 경우, 리스트 객체에는 다음과 같은 값들이 담기게 됩니다.
sys.argv[] = ['test.py', 'Hello', 'TutorialsPoint']
여기서 주목할 점은 첫 번째 요소인 sys.argv[0]에는 항상 실행 중인 스크립트의 파일 이름이 저장된다는 것입니다. 따라서 실제로 사용자가 전달한 인수는 두 번째 요소인 sys.argv[1]부터 시작됩니다.
프로그램에서 인수에 접근하기
프로그램 내에서는 다음과 같이 sys 모듈을 임포트한 후 각 인수에 접근할 수 있습니다.
import sys
print("첫 번째 명령줄 인수:", sys.argv[1])
print("두 번째 명령줄 인수:", sys.argv[2])위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
첫 번째 명령줄 인수: Hello 두 번째 명령줄 인수: TutorialsPoint
참고: 인수 개수 확인하기
전달된 인수의 총 개수를 알고 싶다면 len(sys.argv)를 사용하면 됩니다. 또한 인수가 충분히 전달되지 않았을 때 발생할 수 있는 IndexError 오류를 방지하려면, 접근 전에 인수 개수를 검사하는 것이 좋습니다.
import sys
if len(sys.argv) > 2:
print("첫 번째 명령줄 인수:", sys.argv[1])
print("두 번째 명령줄 인수:", sys.argv[2])
else:
print("인수가 부족합니다.")이처럼 sys.argv를 활용하면 스크립트 실행 시 외부에서 값을 유연하게 전달받아 처리할 수 있어, 배치 작업이나 자동화 스크립트 작성 시 매우 유용합니다.