반응형
파이썬에서는 sys
모듈의 argv
리스트를 사용하여 명령줄 인수에 접근할 수 있습니다.sys.argv
는 명령줄에서 전달된 인수들을 문자열 형태로 저장하는 리스트입니다.
첫 번째 요소는 항상 스크립트의 이름이고, 그 이후의 요소들은 명령줄에서 전달된 인수들입니다.
다음은 명령줄 인수에 접근하는 방법과 예제를 소개합니다.
1. 기본 사용법
먼저 sys
모듈을 임포트합니다.
import sys
sys.argv
리스트를 사용하여 명령줄 인수에 접근할 수 있습니다.
import sys
# 명령줄 인수 출력
for arg in sys.argv:
print(arg)
2. 예제
1. 단순 명령줄 인수 처리
# example.py
import sys
def main():
# 첫 번째 인수는 스크립트 이름
script_name = sys.argv[0]
print(f"Script name: {script_name}")
# 그 이후의 인수는 명령줄에서 전달된 인수들
arguments = sys.argv[1:]
print(f"Arguments: {arguments}")
if __name__ == "__main__":
main()
위 스크립트를 실행하면:
$ python example.py arg1 arg2 arg3
Script name: example.py
Arguments: ['arg1', 'arg2', 'arg3']
2. 명령줄 인수를 사용하여 계산기 구현
# calculator.py
import sys
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return "Cannot divide by zero"
return a / b
def main():
if len(sys.argv) != 4:
print("Usage: python calculator.py <operation> <num1> <num2>")
sys.exit(1)
operation = sys.argv[1]
num1 = float(sys.argv[2])
num2 = float(sys.argv[3])
if operation == 'add':
result = add(num1, num2)
elif operation == 'subtract':
result = subtract(num1, num2)
elif operation == 'multiply':
result = multiply(num1, num2)
elif operation == 'divide':
result = divide(num1, num2)
else:
print("Unknown operation")
sys.exit(1)
print(f"The result is: {result}")
if __name__ == "__main__":
main()
위 스크립트를 실행하면:
$ python calculator.py add 10 5
The result is: 15.0
$ python calculator.py divide 10 0
Cannot divide by zero
3. 고급 사용법: argparse
모듈
명령줄 인수를 보다 효율적으로 처리하기 위해 파이썬 표준 라이브러리에서 제공하는 argparse
모듈을 사용할 수 있습니다. argparse
는 명령줄 인수의 파싱을 보다 간편하게 해줍니다.
argparse
사용 예제
# argparse_example.py
import argparse
def main():
parser = argparse.ArgumentParser(description="Simple calculator")
parser.add_argument("operation", type=str, help="Operation to perform: add, subtract, multiply, divide")
parser.add_argument("num1", type=float, help="First number")
parser.add_argument("num2", type=float, help="Second number")
args = parser.parse_args()
if args.operation == 'add':
result = args.num1 + args.num2
elif args.operation == 'subtract':
result = args.num1 - args.num2
elif args.operation == 'multiply':
result = args.num1 * args.num2
elif args.operation == 'divide':
if args.num2 == 0:
result = "Cannot divide by zero"
else:
result = args.num1 / args.num2
else:
result = "Unknown operation"
print(f"The result is: {result}")
if __name__ == "__main__":
main()
위 스크립트를 실행하면:
$ python argparse_example.py add 10 5
The result is: 15.0
$ python argparse_example.py divide 10 0
The result is: Cannot divide by zero
argparse
모듈을 사용하면 명령줄 인수를 보다 쉽게 정의하고, 기본값 설정, 도움말 메시지 제공 등을 통해 사용자 친화적인 인터페이스를 만들 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] %를 사용한 포맷팅하기 (0) | 2024.07.09 |
---|---|
[ Python ] Windows 서비스 프로그램 만들기 (0) | 2024.07.08 |
[ Python ] 제너레이터(Generators) 사용하기 (0) | 2024.07.07 |
[ Python ] Decorator와 Fuction Profiler 사용하기 (0) | 2024.07.07 |
[ Python ] Decorator와 Profiler 사용하기 (0) | 2024.07.07 |