sys 모듈
Python의 표준 라이브러리
파이썬 인터프리터와 관련된 다양한 기능을 제공함
입출력, 명령행 인자 처리, 인터프리터 종료, 시스템 정보 등을 다룰 수 있음
sys 모듈의 주요 기능
1. 입출력 관련
- sys.stdin : 표준 입력 (키보드나 파일 입력)
- sys.stdout: 표준 출력 (콘솔 출력)
- sys.stderr: 표준 에러 출력 (에러 메시지 출력)
2. 프로그램 종료
- sys.exit() 사용해 프로그램 종료
3. 명령행 인자
- sys.argv 사용하여 명령행에서 전달된 인자를 처리할 수 있음
간단 예제
import sys
# 1. 명령행 인자
print(sys.argv) # 실행 시 전달된 명령행 인자를 리스트로 출력
# 2. 표준 입력
data = sys.stdin.read() # 한꺼번에 입력 받기
# 3. 표준 출력
sys.stdout.write("Hello, World!\n")
# 4. 프로그램 종료
sys.exit(0) # 정상 종료
왜 sys를 사용할까
1. 효율적인 대량 데이터 처리
- sys.stdin.read와 sys.stdout.write 는 반복적인 I/O 연산을 줄이고, 더 빠르게 데이터를 처리함
- 입출력 버퍼를 더 세밀하게 제어할 수 있음
파이썬의 기본 입출력 기능 보완해서 빠르고 효율적인 대량 데이터 처리를 가능하게 함
sys.stdin.readline()과 sys.stdin.read()의 차이
이 둘은 sys.stdin에서 데이터 읽는 데 사용되지만,
읽어오는 방식과 사용 목적에서 차이남
sys.stdin.readline()
- 한 줄씩 입력을 읽어옴
- \n을 포함한 문자열을 반환함
- 반복문으로 한 줄씩 데이터 처리할 때
- 읽어온 데이터는 문자열로 반환되고, 필요하면 .strip()이나 .split()으로 가공해야함!
import sys
# 한 줄씩 입력 받기
line = sys.stdin.readline() # 예: "3 4\n"
numbers = line.split() # 공백 기준으로 나눔
print(numbers) # 출력: ['3', '4']
장점
- 데이터 한 줄씩 처리하기 때문에 메모리 효율적임
- 입력 데이터 크기가 크더라도 반복문으로 하나씩 처리할 수 있어 적합함
sys.stdin.read()
전체 입력을 한꺼번에 읽어옴
입력의 끝(EOF)까지 모든 데이터를 하나의 문자열로 반환함
대량 입력을 한번에 처리할 때
- 데이터가 많을 경우, 메모리에 한꺼번에 올려야 하므로 메모리 사용량이 커질 수 있음 주의!
import sys
# 전체 입력 받기
data = sys.stdin.read() # 예: "3 4\n5 6\n"
lines = data.splitlines() # 줄 단위로 나누기
print(lines) # 출력: ['3 4', '5 6']
장점
- 대량 데이터 처리에 유리, 반복문 없이도 모든 데이터 처리할 수 있음!
- 여러 줄 입력을 한꺼번에 읽고 처리해야 하는 경우 적합
🤔
최근 봤던 코테에서 sys 모듈이 임포트 되어있던것 같다
그리고 입력 데이터(, 테스트 케이스)가 많았다....
백준처럼 백지에 코드를 쓰는게 아니였던 코테라 더 혼란스러운
이런 기본 공부가 참 .. 반성하자

많이 부족하지만 극복..해야죠
'CodingTest' 카테고리의 다른 글
| [백준/Python] 10950번 A+B -3, sys 모듈 (0) | 2024.11.24 |
|---|---|
| [백준/Python] 10872번 팩토리얼, Python의 math 모듈 (1) | 2024.11.18 |
| [백준] 10869번: 사칙연산 (1) | 2024.10.07 |
| [프로그래머스] 짝지어 제거하기 - 12973 (0) | 2024.07.02 |